Ответ
В реляционных СУБД для организации данных и обеспечения их целостности используются несколько типов ключей:
Primary Key (PK, Первичный ключ) — уникальный идентификатор записи в таблице. Он не может содержать
NULLи должен быть абсолютно уникальным. Используется для прямой идентификации и быстрого доступа к строке.Foreign Key (FK, Внешний ключ) — ключ в одной таблице, который ссылается на
PRIMARY KEYв другой. Он обеспечивает ссылочную целостность между таблицами, предотвращая создание записей, ссылающихся на несуществующие данные.Unique Key (Уникальный ключ) — гарантирует, что все значения в столбце (или наборе столбцов) уникальны. В отличие от PK, может содержать одно значение
NULL(в большинстве СУБД). Часто используется для полей, которые должны быть уникальными, но не являются основным идентификатором (например, email пользователя).Composite Key (Составной ключ) — первичный ключ, состоящий из двух или более столбцов. Используется, когда уникальность записи можно определить только комбинацией значений (например, в связующей таблице
user_rolesключом будет параuser_idиrole_id).Candidate Key (Потенциальный ключ) — любой столбец или набор столбцов, который может служить первичным ключом (т.е. он уникален и не
NULL). Таблица может иметь несколько потенциальных ключей, один из которых выбирается как первичный.
Пример в SQL:
-- Таблица команд
CREATE TABLE teams (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL UNIQUE
);
-- Таблица пользователей с внешним и уникальным ключами
CREATE TABLE users (
id INT PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL, -- Уникальный ключ
team_id INT,
FOREIGN KEY (team_id) REFERENCES teams(id) -- Внешний ключ
);