Предупреждающее сообщение для ограничения первичного ключа - PullRequest
0 голосов
/ 18 октября 2011

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

  1. Но выдается предупреждающее сообщение: Warning! The maximum key length is 900 bytes. The index 'pk_hrempid' has maximum length of 1530 bytes.For some combination of large values, the insert/update operation will fail Я узнал, что это будет серьезной проблемой в будущем для вставки данных. Есть ли решение для этого предупреждения?

  2. Другой вопрос: можно ли добавить значение автоинкремента в качестве уникального идентификатора, рекомендуется ли это? Я хочу убедиться, что в будущем это не вызовет проблем, поскольку у меня таблицы, содержащие информацию о сотрудниках из других отделов. Некоторые сотрудники могут присутствовать в двух или более таблицах

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 18 октября 2011
  1. Это ограничение первичного ключа.Вы не можете иметь PK больше 900 байт.

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

0 голосов
/ 18 октября 2011

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

0 голосов
/ 18 октября 2011

Хотя из вашей попытки составного первичного ключа звучит, что вы пытаетесь наилучшим образом использовать «естественный ключ», нет ничего «неправильного» в использовании автоматически увеличивающегося поля ID.

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

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

...