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

Khóa ngoại MySQL sử dụng nhiều trường để tham chiếu đến khóa chính từ một bảng khác

Không sử dụng cùng một cột cho cả hai khóa ngoại. Điều này đôi khi được gọi là liên kết đa hình và nó phá vỡ các quy tắc về thiết kế cơ sở dữ liệu tốt.

Nó phải là một manh mối rằng đó là một thiết kế tồi, rằng một ràng buộc FOREIGN KEY chỉ hỗ trợ một bảng được tham chiếu. Không có hỗ trợ cho các liên kết đa hình trong SQL chuẩn.

Thay vào đó, hãy tạo hai cột, một cột để tham chiếu đến Người dùng, cột kia để tham chiếu đến SystemProcesses. Một cột trên mỗi bảng được tham chiếu.

Logs
uid (INT)  UsersID (INT)  SystemProcessesID (INT) Action
1          2              NULL                    Jane Doe did this
2          1              NULL                    John Doe did that
3          1              1                       Hitman just killed John Doe

Nếu không có tham chiếu liên quan cho cột Người dùng hoặc Quy trình hệ thống, hãy sử dụng NULL để cho biết không có giá trị áp dụng.

Bạn có thể muốn xem lại các câu hỏi khác mà tôi đã trả lời về các liên kết đa hình .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ngừng MySQL dung nạp nhiều NULL trong một ràng buộc DUY NHẤT

  2. LỖI! Máy chủ thoát mà không cập nhật tệp PID (/usr/local/mysql/data/Mac.local.pid)

  3. $ stmt-> close () so với $ stmt-> free_result ()

  4. Sự cố truy vấn MySQL FULLTEXT

  5. MySQL:Lấy tên cột hoặc bí danh từ truy vấn