-1

友人の連絡先リストをソーシャル ネットワークのように保存できるデータベースを作成したいのですが、データベース構造を設計する最良の方法と、mysql を使用して友人の連絡先を簡単に取得する方法は何ですか。

これに対する解決策が必要です、助けてください

4

1 に答える 1

1

階層データをモデル化する最良の方法は、サポートする必要がある操作によって異なります。比較のために、Bill Karwin のスライド「階層データのモデル」を読むことをお勧めします。特に、各アプローチの長所と短所がまとめられているスライド 48 を参照してください。

ただし、友情を階層構造とは見なしません。通常、ループがあります: A は B と友達、B は C と友達、C は A と友達です。代わりに、「users」テーブルへの外部キーである user_id と friend_id の 2 つの列を持つ contact テーブルを作成できます。

contact_list
------------------
user_id フレンド ID
------------------
1 2
2 3
3 1

特定のユーザー ID の連絡先リストを取得するには、次のクエリを実行します。

SELECT friend_id
FROM contact_list
WHERE user_id = 1

ここで、A が B の連絡先リストにあるからといって、B も A の連絡先リストにあるとは限らないと仮定しています。

于 2010-08-13T08:09:13.310 に答える