質問: 題名の通りなのですが、MySQLに、ネットワーク構造(この言い方が正しいかどうか、わかりませんが...)を、 格納する方法を考えていますが、なかなか良い案が、見つかりません。 ネットワーク構造と書いたのは、WEBのサーバ同士がつながっているような感じで、 一つの丸から、複数の線が出ていて、その線で、他の丸と接続していて、 線の数、丸の数も、固定数ではなく、複数の線が出ていて、複数の丸と接続している丸もあれば、 一つの線しか出ていなくて、一つの丸とだけ接続しているものもある。 と書けばイメージ、伝わるでしょうか? この、お互いの接続関係をDBに格納し、一つの丸を指定すると、それに接続されている丸を、 すべて見つけてこれるようにしたいということです。 丸の数、線の数に上限がない(と言っても計算負荷などから考えて常識的な数にはしますが)ので、 丸が追加されると、接続関係も、増えていきます。 ですが、接続が、全く増えない丸も、中にはあります。 こんな、構造を、どんな風にDBで表現したら、良いのか、悩んでいます。 わかりにくい説明で、申し訳ないのですが、調べてみても、 良い方法を見つけられなかったので、もしも、良い案がありましたら、 ご教授頂けると幸いです。
回答: 全部の丸に一意の通し番号を振り、 ``` CREATE TABLE edge ( from INTEGER, // 線の入り口の丸# to INTEGER // 線の出口の丸# ) ``` で、いかがでしょ?