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), պետք է հստակ նշեք դաշտերը և կապերը կազմված արտաքին բանալիների համար, քանի որ ավտոմատ հայտնաբերումն աշխատելու կարողություն չունի։