Apa yang akan menjadi desain database yang lebih baik untuk situs web jejaring sosial? Satu tabel dengan lebih banyak kolom dan lebih sedikit baris, atau beberapa tabel dengan lebih sedikit kolom tetapi lebih banyak baris?
Misalnya: Pengguna dapat memposting pembaruan di dinding mereka atau dalam grup.
Dua desain database yang dapat saya pikirkan adalah:
Desain 1
UserPosts
- Indo
- identitas pengguna
- pos
- tanggal Waktu
UserGroupPost :
- Indo
- groupId
- identitas pengguna
- pos
- tanggal Waktu
Masalah potensial : Mungkin memerlukan gabungan, yang dapat (di masa depan) menjadi permintaan yang lambat.
Desain 2
Posting :
- Indo
- identitas pengguna
- groupId
- pos
- datetime (di mana groupid akan menjadi nol jika pengguna memposting di dinding mereka)
Masalah Potensial : Perulangan pada dataset besar bisa memakan waktu (lama).
Bagaimana saya bisa mendapatkan kinerja yang lebih baik ketika data meningkat? Apakah ada cara lain (lebih baik)?