247 подписчиков

Просто про ключи в БД

Когда мы проектируем реляционную базу данных, то должны во-первых руководствоваться правилами нормализации БД, о чем я уже писал в двух статьях немного выше.

Когда мы проектируем реляционную базу данных, то должны во-первых руководствоваться правилами нормализации БД, о чем я уже писал в двух статьях немного выше. Нормализация БД - наш главный брат и помощник, а она ведет к разделению одной огромной таблицы 100x1 000 000 на несколько небольших, представляющих отдельные сущности: заказ, клиент, товар, поставщик и так далее. И встает вопрос: как-то же надо их связать воедино, чтобы они работали как один механизм, а транзакции выполняли все требования ACID, о котором я писал в предыдущем посте.

И тут нам на помощь приходят ключи. Первое правило ключей - то, что они уникальны внутри всей таблицы. Например, ставить ключем в таблице клиентов имя - очень плохая затея, так как тезок в одном только городе может быть сколь угодно много. Поэтому очень часто в качестве ключа используют просто порядковый номер, обычно его называют id или idСущность (idClient или client_id, как тебе больше нравится). Но бывают истории, когда одного ключа не достаточно, например когда мы разрешаем связь многие-ко-многим (пример: товары к поставщикам), по правилам мы создаем промежуточную таблицу, куда попадают только ключи из обеих таблиц, образуя составной ключ. Помимо этого составной ключ может получиться, если мы свяжем таблицы многие-к-одному, тогда со стороны 1 на таблицу со стороны многие придет ключ и в таблице со стороны многие будет составной ключ. Например, Из таблицы Товары (1) в таблицу Заказы (Многие) придет ключ idТовара.

Вот в принципе и вся основная информация про ключи. Если что-то не понятно - задавай вопросы! Ну и не забывай подписываться и звать друзей

#бд #ключи