Senior
18
Может ли внешний ключ быть составным?
Компании, где спрашивали
purrweb
Ответ от нейросети
sobes.tech 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), то для составных внешних ключей нужно явно указывать поля и связи, так как автоматическое определение может не сработать.