ソーシャルネットワーキングサイトに存在するテーブルは何ですか(例:Twitter)。
現在、ユーザーテーブルがあります。フォロワーとフォローしている人を追跡する方法は?
これを主観的/オフトピックと考えないでください。私は初心者なので、専門家は良いDB設計を得るために私を導くことができると思いましたか?
Database Answers 、特にデータモデルを見てみてください。さまざまなシステム向けにいくつかの異なる設計があります。この one は、ソーシャルネットワーキングサイト用であり、何が必要かを知ることができます。
SOで他のソーシャルネットワークデータベースの質問を検索できます。 this one that have link to the flickr] は、Facebookからのものと思われるスキーマを示しています。
データベース設計は、システム要件に基づいて行われます。何を達成しようとしているのかを正確に知らなければ、最高のデザインを提供することは困難です。
次のメッセンジャーデータベースデザインコンセプトを使用できます。 メッセンジャーDB
Follower /に続くrelationships
に別のテーブルを作成できます。したがって、xがyに続く場合、follower_id = x.id followed_id = y.id
を使用してエントリを作成します。
select * from relationships where follower_id = x.id
によってリレーションシップを持つすべてのユーザーxを検索するために、リレーションシップテーブルをクエリできます。
Xがyに従っていない場合、元々作成したエントリを削除するだけです。