Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách thích hợp để lưu trữ dữ liệu này trong một lược đồ MySQL là gì?

Thay vì một hàng cho mỗi phim, hãy sử dụng bảng thuộc tính-giá trị. Sau đó, thêm một trường bổ sung vào trường này chỉ định người dùng, sẽ là 0 cho mặc định ban đầu. Vì vậy, bảng có dạng như sau:

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

Sau đó, một truy vấn để lấy tiêu đề sẽ giống như sau:

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'

Một số nhà thiết kế cơ sở dữ liệu cũng thích sử dụng AttributeID chứ không phải là một chuỗi làm tên thuộc tính và một bảng riêng biệt ánh xạ tên thuộc tính với 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. Tại sao các ký tự Unicode hiển thị đúng trong cơ sở dữ liệu, nhưng lại như vậy? khi được in bằng Java thông qua Hibernate?

  2. MYSQL - Chỉ chọn nếu hàng trong THAM GIA TRÁI không có mặt

  3. php tải lên hình ảnh và lưu tên tệp vào mysql

  4. Windows 8 và MySQL? Những lựa chọn của tôi là gì?

  5. Không được phép trả về tập hợp kết quả từ trình kích hoạt