Saya menyimpan berbagai detail pengguna di database MySQL saya. Awalnya itu diatur dalam berbagai tabel yang berarti data dihubungkan dengan UserIds dan dikeluarkan melalui panggilan yang terkadang rumit untuk menampilkan dan memanipulasi data sesuai kebutuhan. Menyiapkan sistem baru, hampir masuk akal untuk menggabungkan semua tabel ini menjadi satu tabel besar konten terkait.
- Apakah ini akan menjadi bantuan atau penghalang?
- Pertimbangan kecepatan dalam menelepon, memperbarui, atau mencari / memanipulasi?
Berikut adalah contoh dari beberapa struktur tabel saya:
- pengguna - UserId, nama pengguna, email, kata sandi terenkripsi, tanggal pendaftaran, ip
- user_details - data cookie, nama, alamat, detail kontak, afiliasi, data demografis
- user_activity - kontribusi, terakhir online, terakhir dilihat
- user_settings - pengaturan tampilan profil
- user_interests - mengiklankan variabel yang dapat ditargetkan
- user_levels - hak akses
- user_stats - klik, penghitungan
Sunting: Sejauh ini saya telah memilih semua jawaban, semuanya memiliki elemen yang pada dasarnya menjawab pertanyaan saya.
Sebagian besar tabel memiliki hubungan 1: 1 yang merupakan alasan utama untuk melakukan denormalisasi.
Apakah akan ada masalah jika tabel mencakup lebih dari 100 kolom ketika sebagian besar sel ini cenderung tetap kosong?