Есть ли веские причины иметь таблицу базы данных без целочисленного первичного ключа? - PullRequest
4 голосов
/ 23 марта 2009

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

Плюсы: - хотите вы этого или нет, теперь вы можете уникально идентифицировать каждую строку в вашей таблице, что раньше вы не могли сделать - Вы не можете выполнить репликацию sql без первичного ключа на вашей таблице

Минусы: - дополнительные 32 бита для каждой строки таблицы

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

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

Ответы [ 11 ]

0 голосов
/ 13 ноября 2009

Первичный ключ ВСЕГДА хорошая идея. Это позволяет очень быстро и легко соединять столы. Это помогает внешним инструментам, которые могут читать системные таблицы, чтобы сделать объединение, позволяя менее опытным людям создавать свои собственные запросы путем перетаскивания. Это также упрощает реализацию ссылочной целостности, и это хорошая идея с самого начала.

...