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), πρέπει να καθορίσετε ρητά τα πεδία και τις σχέσεις για σύνθετα ξένα κλειδιά, καθώς η αυτόματη ανίχνευση μπορεί να μην λειτουργεί.