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.