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

Liên minh phức hợp MYSQL

Nếu hệ thống phân cấp mong muốn của bạn là chương trình -> chủ đề -> chuỗi -> năm -> đơn vị -> learning_event, thì bạn nên điều chỉnh cấu trúc bảng của mình để phản ánh điều này. Chủ đề cụ thể phải có mối quan hệ chính ngoại giữa chủ đề và chương trình, và bạn cần thêm một cấp độ cho năm. Việc có một khóa ngoại giữa chủ đề và chương trình sẽ tránh được sự cần thiết phải kết hợp chéo. Những người tham gia chéo có thói quen cắn bạn và thường cần tránh.

Nếu bạn nhìn vào db fiddle này bạn sẽ thấy rằng tôi đã thực hiện những thay đổi này. Tôi đã gọi cấp độ năm để tránh sử dụng từ dành riêng, nhưng ý định phải rõ ràng. Giờ đây, các phép nối trở thành các phép nối bên trong (thay vì các phép nối bên trái) để nhận các giá trị mô tả từ các cấp cao hơn trong cây và cấp dưới cùng (learning_events) tự động chỉ chứa các giá trị khớp với chuỗi, năm và đơn vị, không vì lý do nào khác ngoài rằng bản thân cấu trúc đảm bảo nó, thông qua giải pháp đơn giản rằng mỗi cấp có một khóa ngoại đối với cấp trên.

Lưu ý rằng các khóa nước ngoài liên kết chuỗi hiệu quả. Ví dụ:bạn không cần một khóa ngoại cụ thể giữa learning_event và strand, vì các khóa can thiệp trong chuỗi đảm bảo mối quan hệ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CURRENT_TIMESTAMP dưới dạng DEFAULT

  2. PHP làm cách nào để kiểm tra email đã có trong cơ sở dữ liệu MySQL?

  3. WooCommerce:Tìm các sản phẩm trong cơ sở dữ liệu

  4. Làm thế nào để chèn dữ liệu hàng loạt vào cơ sở dữ liệu cùng một lúc?

  5. Sự cố về trình truy cập cửa hàng:Không thể đọc các giá trị cũ đã được lưu trữ của đối tượng json được tuần tự hóa (băm) trong cơ sở dữ liệu mysql trong Rails 4