Общий вопрос SQL о первичных ключах - PullRequest
1 голос
/ 13 сентября 2011

Я знаю, что это довольно элементарно, но здесь это идет.

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

Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 13 сентября 2011

Вам нужно взглянуть на свои структуры данных.

Первичный ключ должен :

  • никогда быть NULL ( без исключений )
  • надежно и уникально идентифицирует каждую отдельную строку

, и это помогает, если

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

Проверьте свои данные - какие столбцы или набор столбцов могут удовлетворить эти требования ??

Когда у вас есть эти потенциальные первичные ключи («ключи-кандидаты») - подумайте, как вы получите доступ к данным и какие другиеданные, возможно, должны быть связаны с этой единственной рассматриваемой сущностью - что будет иметь смысл в качестве внешнего ключа?Вы хотите сослаться на свой отдел по имени?Вероятно, это не очень хорошая идея, поскольку название может быть написано с ошибкой, оно может со временем меняться и т. Д. По расположению офиса департамента?Плохой выбор тоже.Но что-то вроде уникального «идентификатора отдела» может быть хорошей идеей.

Если в ваших фактических данных нет подходящих столбцов, которые могли бы служить первичным ключом и имели бы смысл, этоОбычная практика - вводить «суррогатный ключ» - дополнительный столбец, часто INT (и часто что-то вроде «автоинкремента» INT), который будет служить искусственным идентификатором для каждой строки.Если вы сделаете это, одна из лучших рекомендаций - никогда не показывать этот искусственный ключ на любом экране данных - он не имеет никакого значения для пользователей вашей системы - поэтому даже не показывайте его им.

ПроверкаЭти требования и большой опыт помогут вам найти правильный первичный ключ.

1 голос
/ 13 сентября 2011

Это действительно зависит от самих данных. Вам необходимо определить, какие поля можно использовать для уникальной идентификации записи.

0 голосов
/ 13 сентября 2011

На сервере SQL рядом с ним будет ключ. Обычно это ID или что-то с ID в нем. Это также уникально и обычно увеличивается. Когда вы смотрите на это в SQL. Студия управления сервером под таблицей дизайна вы увидите его в верхней части списка столбцов со значком клавиши Lil.

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

...