1

そのため、現在、ユーザーが Facebook や Twitter のようにメッセージを投稿できる「投稿」があります。ただし、これまでのところ、ユーザーは自分が投稿したメッセージしか表示できません。

現在のテーブルデザインです

ID | username | message | datetime

ただし、ユーザー自身だけでなく「友達」からのメッセージも表示したい「一般的な」領域があります。

これまでのところ、「友情」がどのように保存されるかを設計していません。これが実行可能な解決策であるかどうかはわかりませんが、各ユーザーが友人を保存するために個別のテーブルを作成することを考えています。それ以外の場合、「友情」関係をどのように設計すればよいでしょうか?

だから私の質問は、

  1. 「友達」データベース関係をどのように設計すればよいですか

  2. 現在のユーザーと友達になっているすべてのユーザーからメッセージを取得するにはどうすればよいですか?

4

2 に答える 2

1

リレーショナル データベースを使用する必要が特にない場合は、データが方向性を持つ (いいね! やコメントなどの一方向性、または友情などの双方向性) 可能性のあるケースを処理するために設計および最適化されたグラフ データベースの使用を検討することをお勧めします。

私はこれらのデータベースの経験はありませんが、(研究の観点から) あなたの出発点は、人気があると思われるグラフ データベースである Neo4j である可能性があります。

Friendsリレーショナル側では、user_id フィールドのユーザー テーブルに関連する PK user_id と FK friend_id を持つテーブルが必要です。関係ごとに 2 つのエントリが必要です (友情は双方向であるため)。

于 2013-06-24T02:02:23.107 に答える