Sobes.tech
Senior

შესაძლებელია ძირითადი გასაღები კომპოზიციური იყოს?

sobes.tech AI

პასუხი AI-სგან

Այո, բաղադրիչ հիմնական բանալին կարող է լինել։ Բաղադրիչ հիմնական բանալին այն է, որը բաղկացած է մի քանի սյունակներից աղյուսակում, որոնք միասին հստակորեն նույնականացնում են գրանցումը:

SQL-ում օրինակ՝

CREATE TABLE Orders (
    OrderID INT,
    ProductID INT,
    Quantity INT,
    PRIMARY KEY (OrderID, ProductID)
);

Այստեղ OrderID և ProductID համադրությունը եզակի է և ծառայում է որպես հիմնական բանալին:

Go-ում, ORM-ի հետ աշխատելիս (օրինակ՝ GORM), բաղադրիչ բանալին կարելի է նկարագրել նշանների կամ առանձին կառուցվածքների միջոցով, բայց կարևոր է նկատել, որ բոլոր ORM-ները նույնքան հարմար չեն աջակցում բաղադրիչ բանալիներին:

Բաղադրիչ բանալիները օգտակար են, երբ գրանցման եզակիությունը որոշվում է մի քանի դաշտերի համադրությամբ, ոչ միայն մեկի։ Սակայն դրանց օգտագործումը կարող է բարդացնել հարցումները և սպասարկումը, այդ պատճառով երբեմն ավելի լավ է օգտագործել սուրհոգատային բանալին (օրինակ՝ ավտոմատ աճող ID):