Hal-hal yang perlu dipertimbangkan dengan pendekatan Anda
Menyimpan Profil Pengguna di Tabel Pengguna
- Ini umumnya akan menjadi pendekatan tercepat dalam hal mendapatkan data profil, meskipun Anda mungkin memiliki banyak data yang berlebihan di sini (kolom yang mungkin tidak memiliki informasi apa pun di dalamnya).
- Cepat (terutama jika Anda hanya menarik kolom yang Anda butuhkan dari db)
- Data Terbuang
- Lebih sulit untuk bekerja dengan / memelihara (bisa dibilang dengan antarmuka seperti PHPMyAdmin)
Menyimpan Profil Pengguna di Tabel User_Profile 1-1 hubungan dengan pengguna
- Seharusnya masih cukup cepat dengan bergabung dan Anda dapat menghilangkan beberapa redundansi data jika profil pengguna tidak dibuat kecuali jika pengguna mengisinya.
- Lebih mudah untuk bekerja dengan
- Sedikit lebih lambat karena bergabung (atau kueri ke-2)
Menyimpan Profil Pengguna sebagai properti dan nilai dalam tabel
*yaitu. Tabel untuk menyimpan opsi yang memungkinkan, tabel untuk menyimpan user_id, option_id dan nilai*
- Tidak ada data redundan yang disimpan, semua data relevan
- Metode yang paling dinormalisasi
- Lebih lambat untuk mengambil dan memperbarui data
Kesan saya adalah bahwa sebagian besar situs web menggunakan metode ke-2 dan menyimpan informasi profil di tabel kedua, biasanya sebagian besar situs web yang lebih besar melakukan denormalisasi basis data (twitter, facebook) untuk mencapai kinerja baca yang lebih baik dengan mengorbankan kinerja penulisan yang lebih lambat.
Saya akan berpikir bahwa menyimpan informasi profil di tabel kedua kemungkinan adalah cara yang harus dilakukan ketika Anda melihat 50.000 catatan. Untuk kinerja optimal, Anda ingin menyimpan data yang ditulis dengan sangat terpisah dari data yang banyak dibaca untuk memastikan cache dapat bekerja secara efektif.