TGViewer
Мастерская IT-решений Мастерская IT-решений @solutionstudio · 161 subscribers
Post #64 59
🔑 О первичных ключах 🔑

При проектировании базы данных важно выбрать подходящий способ идентификации записей в таблицах. Простой (одиночный) первичный ключ используется чаще всего, но иногда возникает необходимость использовать составной первичный ключ, состоящий из нескольких полей. Рассмотрим случаи, когда это целесообразно сделать.

Есть понятие «Естественная идентификация». Например, каждая книга однозначно идентифицируется по своему ISBN-коду. Но есть сущности, которые не имеют своей собственной идентификации. Например, таблицы со связями. То есть если таблица характеризует какую-то связь между сущностями, то в ней может не быть первичного ключа вообще.

🔐 А что про составной ключ?

Составной ключ будет очень удобен для фиксации событий. Применение составного ключа в таких задачах помогает избежать дублирования данных, так как таблица автоматически отвергнет попытку добавить повторяющиеся строки.

📌 Пример:
Регистрация сотрудников на курсы повышения квалификации (employee_courses), где один сотрудник не может дважды записаться на один и тот же курс в одно и то же время (employee_id, course_id, start_date).

🗑 Когда избегать составного ключа

🗳 Дублирование значений
Каждый раз, когда добавляем новую запись, приходится повторять одни и те же значения. Это увеличивает объем данных и снижает эффективность хранения.

🗳 Сложность поддержки
Добавление новых строк становится сложнее, так как нужно следить за соответствием всех частей ключа.

🗳 Производительность при индексации
Если количество индексов большое, база данных тратит больше ресурсов на обслуживание индексов, замедляя работу системы.


Как считаете, в нашей задаче есть сущности, для которых подойдет составной первичный ключ?
More from @solutionstudio
  1. Sep 23, 2026Начинаем розыгрыш 1 билета на Стачку! Стачка - это шанс послушать крутых спикеров, понетво…
  2. Sep 22, 2026Привет, дорогие! Соскучились?) А я к вам с чем-то приятным. Все же знают, что скоро идём н…
  3. Aug 11, 2026Подводные камни JWT 🟣 Проблема инвалидации Это ахиллесова пята stateless-токенов. Предста…
  4. Aug 5, 2026JWT. Коробка с секретом, в которую можно заглянуть В прошлом посте мы остановились на том,…
  5. Jul 31, 2026Продолжаем мысль предыдущего поста. ❇️ Альтернатива: "Коробка с секретом" А что, если серв…
  6. Jul 28, 2026Точка входа. Почему сессия это сложно, и при чем тут токены Привет, коллеги. Сегодня вкаты…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →