ソーシャルネットワークのウェブサイトに適したデータベース設計は何でしょうか?列が多く行が少ない単一のテーブル、または列は少ないが行が多い複数のテーブル?
例:ユーザーは自分の壁またはグループに更新を投稿できます。
私が考えることができる2つのデータベース設計は次のとおりです。
デザイン1
UserPosts
- id
- ユーザーID
- 役職
- 日付時刻
UserGroupPost:
- id
- groupId
- ユーザーID
- 役職
- 日付時刻
潜在的な問題:結合が必要になる可能性があり、(将来的には)クエリが遅くなる可能性があります。
デザイン2
投稿:
- id
- ユーザーID
- groupId
- 役職
- datetime(ユーザーが壁に投稿した場合、groupidはnullになります)
潜在的な問題:大きなデータセットをループすると、(長い)時間がかかる場合があります。
データが増加した場合、どのようにしてパフォーマンスを向上させることができますか?他に(より良い)方法はありますか?