Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa cara yang tepat untuk menyimpan data ini dalam skema MySQL?

Alih-alih satu baris untuk setiap film, gunakan tabel nilai atribut. Kemudian tambahkan bidang tambahan untuk ini yang menentukan pengguna, yang akan menjadi 0 untuk default asli. Jadi tabelnya terlihat seperti:

MovieID UserID  Attribute   Value
1       0       Title       12 Monkeys
1       0       Format      DVD
1       1       Title       Twelve Monkeys

Kemudian kueri untuk mendapatkan judul akan terlihat seperti:

SELECT MovieID, IFNULL(my.Value, default.Value) AS title
FROM movies AS default
LEFT JOIN movies AS my ON default.MovieID = my.MovieID AND my.Attribute = 'Title' AND my.userID = @user
WHERE default.UserID = 0 AND default.Attribute = 'Title'

Beberapa desainer database juga suka menggunakan AttributeID bukan string sebagai nama atribut, dan tabel terpisah yang memetakan nama atribut ke ID.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hitung Laba Berdasarkan Harga First-In, First-Out

  2. Memiliki masalah yang mengikat parameter ke Pernyataan PDO

  3. Apakah mysql UPDATE lebih cepat daripada INSERT INTO?

  4. kesalahan bind_param - Jumlah elemen dalam string definisi tipe tidak cocok dengan jumlah variabel pengikatan

  5. Bagaimana cara menghitung jumlah dua kolom dari dua tabel yang berbeda tanpa klausa where?