Складений ключ (Composite Key)
Складений ключ — це первинний ключ бази даних, який складається з двох або більше колонок.
Usage: 1. Link tables (Many-to-Many). 2. Weak entities. 3. Partitioning. Performance: Affects index size and join speed. Alternatives: Surrogate Keys (UUID/Incremental ID). Rules: Columns in a composite key cannot be NULL.
graph LR
Center["Складений ключ (Composite Key)"]:::main
Rel_data_modeling["data-modeling"]:::related -.-> Center
click Rel_data_modeling "/terms/data-modeling"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Це як ваша домашня адреса. Слово 'Київ' не унікальне (багато будинків у Києві). Слово 'вулиця Садова' теж не унікальне. Але якщо ви додасте 'Місто + Вулиця + Номер будинку', ви отримаєте унікальну 'адресу' (складений ключ), за якою вас точно можна знайти.
🤓 Expert Deep Dive
При проектуванні баз даних складені ключі часто замінюють на 'Суррогатні ключі' (наприклад, ID типу UUID) для спрощення JOIN-запитів. Проте складені ключі залишаються незамінними для таблиць-зв'язків у відношеннях 'багато-до-багатьох' (Many-to-Many). Важливо пам'ятати, що порядок полів у складеному ключі впливає на швидкість пошуку: першим має йти поле, яке найчастіше використовується у фільтрації даних.