sql первичный ключ автоинкремент

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

действительно ли это нужно?

5 ответов

Решение

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам