web-dev-qa-db-ja.com

ソーシャルネットワーキングサイトのデータベース設計

ソーシャルネットワーキングサイトに存在するテーブルは何ですか(例:Twitter)。

現在、ユーザーテーブルがあります。フォロワーとフォローしている人を追跡する方法は?

  • フォロワーとフォローする人々のために別々のテーブルを維持すべきですか?
  • それらのテーブルにある列は何ですか?

これを主観的/オフトピックと考えないでください。私は初心者なので、専門家は良いDB設計を得るために私を導くことができると思いましたか?

32
user326638

Database Answers 、特にデータモデルを見てみてください。さまざまなシステム向けにいくつかの異なる設計があります。この one は、ソーシャルネットワーキングサイト用であり、何が必要かを知ることができます。

SOで他のソーシャルネットワークデータベースの質問を検索できます。 this one that have link to the flickr] は、Facebookからのものと思われるスキーマを示しています。

データベース設計は、システム要件に基づいて行われます。何を達成しようとしているのかを正確に知らなければ、最高のデザインを提供することは困難です。

39
Andy Robinson

次のメッセンジャーデータベースデザインコンセプトを使用できます。 メッセンジャーDB

Messenger DB Schema

8
Sadegh-khan

Follower /に続くrelationshipsに別のテーブルを作成できます。したがって、xがyに続く場合、follower_id = x.id followed_id = y.idを使用してエントリを作成します。

select * from relationships where follower_id = x.idによってリレーションシップを持つすべてのユーザーxを検索するために、リレーションシップテーブルをクエリできます。

Xがyに従っていない場合、元々作成したエントリを削除するだけです。

6
user3375663