Sobes.tech
Senior

Може ли външният ключ да бъде съставен?

sobes.tech AI

Отговор от AI

Да, външният ключ може да бъде съставен. Това означава, че външният ключ се състои от няколко колони, които заедно сочат към съставен първичен ключ или уникален ключ в друга таблица. Този подход се използва, когато връзката между таблиците не се определя от едно поле, а от комбинация от няколко полета.

Пример в SQL:

CREATE TABLE Orders (
    OrderID int,
    ProductID int,
    PRIMARY KEY (OrderID, ProductID)
);

CREATE TABLE Shipments (
    ShipmentID int PRIMARY KEY,
    OrderID int,
    ProductID int,
    FOREIGN KEY (OrderID, ProductID) REFERENCES Orders(OrderID, ProductID)
);

В контекста на Golang, ако работите с ORM (например GORM), трябва ясно да посочите полетата и връзките за съставните външни ключове, тъй като автоматичното разпознаване може да не работи.