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), უნდა დააზუსტოთ სვეტები და კავშირები კომპოზიციურ გარე გასაღებებზე, რადგან ავტომატური ამოცნობა შეიძლება არ იმუშაოს.