私はFacebookのようなソーシャルネットワークのウェブサイトを作成しています。 私の「壁」には、ステータス、メッセージ、ユーザーがページを好き嫌いするなど、さまざまな種類の情報があります。Facebookのような複雑な壁のためのDBを設計する方法
DBの設計方法を知っています壁関連のテーブルを取得するときにできるだけ効率的に(速度に関して)効率的になるようにします。
ありがとうございます!
EDITは:
- は、あらゆる可能性を処理するのに十分なカラムを持つ大きなテーブルを持っている(USER_A、USER_A、メッセージ、ページ、is_like、is_dislike、...):私は2つのアイデアを持っています。これは高速ですが、多くの 'NULL'値を持ち、DBに多くのスペースをとります。
- 壁アイテムの種類ごとに3つの列(id、user_a、user_b)とテーブルを持つ 'wall_item'メッセージ、好きなもの、ステータスなど)。これは正規化されますが、すべての情報を取得するために必要な左結合の数のためにはるかに時間がかかるでしょう。
私の質問に投票した理由を教えてください。私は何が間違っているか分からない...私に知らせて、私はそれを修正することが幸せになる;) –