Подтвердить что ты не робот

Когда нам не нужен первичный ключ для нашей таблицы?

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

4b9b3361

Ответ 1

Нет.

Первичный ключ делает много вещей за кадром, даже если ваше приложение никогда не использует его.

Например: кластеризация повышает эффективность (потому что таблицы кучи - беспорядок).

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

Ответ 2

Да.

Если у вас есть таблица, которая всегда будет извлекаться полностью, и на нее ссылаются нулевые другие таблицы, такие как отдельные автономные настройки или таблица конфигурации, тогда нет точки с первичным ключом, а аргумент могут быть сделаны кем-то, что добавление ПК в этой ситуации было бы обманом нормального использования такой таблицы.

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

Ответ 3

Зависит.

Что такое первичный ключ/уникальный ключ?

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

Итак, когда вам не нужно различать (однозначно идентифицировать) каждую строку,
вам не нужно использовать первичный ключ

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

Ответ 4

Первичный ключ не является обязательным, но не рекомендуется создавать таблицы без первичного ключа. СУБД создает автоиндекс на ПК, но вы можете сделать столбец уникальным и проиндексировать его, например. Столбец user_name в таблице users обычно делается уникальным и индексированным, поэтому вы можете пропустить здесь PK. Но это все еще плохая идея, поскольку ПК может использоваться как внешний ключ для ссылочной целостности.

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

Таблицы ссылок (во многих отношениях) могут не иметь первичного ключа. Но мне лично нравится иметь ПК в этих таблицах.