Cần trợ giúp về SQL server ạ
Các bạn ơi , mình loay hoay mãi vẫn chưa ra!
Mình có 2 bảng như này
Mượn trả (Mã mượn trả, Số thẻ, Mã nhân viên, Ngày mượn)
CT Mượn trả (Mã mượn trả, Mã sách, Ghi chú, Đã_trả, Ngày trả)
Mình viết trên sql

Nhưng không được , nó báo lỗi :
Msg 1776, Level 16, State 0, Line 109
There are no primary or candidate keys in the referenced table ‘MuonTra’ that match the referencing column list in the foreign key ‘FK_1CT’.
Msg 1750, Level 16, State 0, Line 109
Could not create constraint or index. See previous errors.
Mong mọi người giúp đỡ với ạ!
Bảng
MuonTra
có tới 2 khóa chínhMaMuonTra
,MaNV
hả bạn? Theo như mình nhớ thì khóa ngoại phải được tham chiếu đúng đến khóa chính (nếu nhiều khóa chính thì phải liệt kê hết ra). Như dòng lỗi đã báo thì khóa ngoạiMaMuonTra
trong bảngCTMuonTra
ko thể tham chiếu đến bảngMuonTra
do không có đủ khóa chính thích hợp.Ý bạn là Khi mình tham chiếu đến một bảng thì phải tham chiếu đến TOÀN BỘ khóa chính ???(phải không?) .Ví dụ ,CTMuonTra(MaMuonTra) phải tham chiếu hết toàn bộ khóa chính bên table MuonTra(MaMuonTra,MaNV) phải không nhỉ?
Tạm hiểu theo cách đó cũng được. Do hình cũng là newbie thôi nên cũng chưa nắm chắc.
There are no primary or candidate keys in the referenced table that match the referencing column list in the foreign key
Bạn xem cái nảy để giải quyết vấn đề trên nhé!
Do bảng Mượn Trả của bạn gồm tổ hợp 2 khóa chính nên khi liên kết khóa ngoại bắt buộc phải trùng nha bạn!
Khi làm PTTK, đến lúc ra mô hình CSDL thì bạn phải lấy bộ khóa chính (Primary Key) từ table CHA (MuonTra) xuống table CON (CTMuonTra).
Do đó khi tạo Foreign Key từ bảng CON tham chiếu đến bảng CHA phải liệt kê Bộ Khóa tương ứng.
Trong trường hợp này bộ khóa bảng cha là (MaMuonTra, MaNV) thì bảng con phải có cặp column tương ứng khi tham chiếu.
Thiết kế 2 bảng của bạn hơi kỳ, thông thường chỉ cần:
Ngoại lệ: cái này chỉ dành cho SQL Server.
Bạn có thể tạo FK từ bảng con tham chiếu tới UniqueKey ở bảng cha. <= không khuyến khích dùng.
Cho mình hỏi CTMuonTra ở đây CT nghĩa là gì vậy? :3