Хотя я и виновен в этом преступлении, мне кажется, что у таблицы не может быть веских причин для того, чтобы у таблицы не было первичного ключа поля идентификации.
Плюсы:
- хотите вы этого или нет, теперь вы можете уникально идентифицировать каждую строку в вашей таблице, что раньше вы не могли сделать
- Вы не можете выполнить репликацию sql без первичного ключа на вашей таблице
Минусы:
- дополнительные 32 бита для каждой строки таблицы
Рассмотрим, например, случай, когда вам нужно сохранить пользовательские настройки в таблице в вашей базе данных. У вас есть столбец для имени параметра и столбец для значения параметра. Первичный ключ не требуется, но наличие целочисленного столбца идентификаторов и использование его в качестве первичного ключа представляется наилучшей практикой для любой таблицы, которую вы когда-либо создавали.
Существуют ли другие причины помимо размера, что каждая таблица не должна просто иметь поле целочисленного идентификатора?