sql первичный ключ автоинкремент - PullRequest
1 голос
/ 15 марта 2012

Требуется ли иметь первичный ключ, который автоматически увеличивается в каждой новой строке?для меня это число становится довольно длинным, и я даже не использую его ни для чего.
Я могу себе представить, что при постепенной пользовательской активности на моем сайте будут добавляться новые строки (я только тестирую АТМ только с 2 alfa testпользователи и уже число от auto incremented до более 100), в конечном итоге это число может достигнуть глупых пропорций (example: 10029379000577352881086) и не только замедлить работу сайта (влияя на пользовательский опыт), но также может неизбежно подтолкнуть мой сайт к его квоте (превышающей допустимуюразмер (непрофессиональный))

неужели это нужно?

Ответы [ 5 ]

2 голосов
/ 15 марта 2012

Если у вас есть поле / столбец (или комбинация столбцов), который может быть первичным ключом, используйте его, поэтому используйте Автоинкремент. Есть школа мысли, которая верит, используя смесь обоих. Вы можете искать суррогатные ключи, и этот ответ может показаться вам интересным Суррогатные и натуральные / деловые ключи

Что касается проблемы размера квоты, практически я не думаю, что максимальное значение автоинкремента приведет к превышению лимита данных вашим сайтом. Если он имеет тип int, он займет 4 байта, независимо от значения внутри. Для SQL-сервера тип int может содержать значения в диапазоне от -2 ^ 31 (-2 147 483 648) до 2 ^ 31-1 (2 147 483 647). Вот ссылка для этого

1 голос
/ 15 марта 2012

Вам нужен способ уникальной идентификации каждой записи в вашей таблице.

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

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

Предупреждение. Если вы решили от него избавиться, убедитесь, что другие таблицы не используются.

0 голосов
/ 15 марта 2012

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

0 голосов
/ 15 марта 2012

первичный ключ не всегда необходим для таблицы.на ваш вопрос проверьте мой ответ:

, когда и когда не первичный ключ должен использовать

0 голосов
/ 15 марта 2012

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

...