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

Khóa ngoại tham chiếu đến nhiều hàng trong bảng khác

Giải pháp thông thường cho việc này là tạo một bảng giao nhau:

CREATE TABLE vehicles_owned
(
  o_id INT,
  v_id INT,
  PRIMARY KEY (o_id, v_id),
  FOREIGN KEY (o_id)
    REFERENCES owners (o_id),
  FOREIGN KEY (v_id)
    REFERENCES vehicles (v_id)
);

Sau đó, bạn thả v_id từ owners .

Bảng này cho phép mỗi owners để sở hữu nhiều vehicles và mỗi vehicles có nhiều owners . Nếu bạn muốn thực thi ràng buộc một chủ sở hữu trên mỗi phương tiện, hãy thêm UNIQUE lập chỉ mục cho vehicles_owned.v_id .

CHỈNH SỬA:Tất nhiên, nếu bạn muốn thực thi ràng buộc một chủ sở hữu cho mỗi chiếc xe, bạn cũng có thể chỉ cần thêm o_id tới vehicles làm khóa ngoại và không bận tâm đến bảng giao nhau.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Những cách đã biết để lưu trữ cấu trúc cây trong DB quan hệ là gì?

  2. Cách cài đặt MySQL trên CentOS 6

  3. Sự khác biệt giữa mysql_fetch_array và mysql_fetch_row?

  4. MySQL max_user_connections so với max_connections

  5. Làm cách nào để bạn kết nối hiệu quả với mysql trong php mà không cần kết nối lại trên mọi truy vấn