Какова лучшая практика для составного первичного ключа? - PullRequest
0 голосов
/ 24 августа 2018

У меня есть таблица, в которой я сделал два столбца в качестве составного PRIMARY KEY.Теперь у меня путаница.

Допустим, у меня есть таблица в следующем виде:

ColA         ColB

X            NULL
X            NULL

Обе строки "X NULL" и "X NULL" объединены ПЕРВИЧНЫМ КЛЮЧОМ.

Итак, возможна ли эта вставка?Поскольку значение NULL отличается и, соответственно, обе строки должны представлять новую комбинацию данных.

Уточните.

1 Ответ

0 голосов
/ 24 августа 2018

Первичные ключи имеют три свойства:

  • Ключ (комбинация) однозначно идентифицирует каждую строку.
  • Никакой компонент ключей не может быть NULL.
  • Таблица имеет только один первичный ключ.

Таким образом, по этому определению вы не можете объявить два столбца первичным ключом.

В общем, я не сторонник составных первичных ключей. Я рекомендую использовать автоинкрементный первичный ключ для таблицы (синтаксис зависит от базы данных).

Одной из приятных особенностей числового идентификатора является то, что он фиксирует порядок вставки значений в таблицу. Кроме того, многие базы данных группируют данные по первичному ключу, вызывая фрагментацию на insert с и update с.

...