Должна ли ссылочная таблица содержать числовое значение столбца идентификатора PK, равное 0? - PullRequest
5 голосов
/ 15 сентября 2011

У нас есть таблица, которая содержит действительные коды валют. Например, мы выбираем числовое значение в качестве первичного ключа, а не 3-символьный код валюты ISO.

По общему мнению, этот столбец CurrencyId должен содержать значения, начинающиеся с нуля. Поскольку доллар США является основной валютой для нас, он занял первую позицию со значением 0.

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

Я весь мокрый? Я бы предпочел присвоить CurrencyId от 1 до USD.

1 Ответ

3 голосов
/ 15 сентября 2011

Фактический идентификатор не должен иметь значения. Его начало с 0 (или 1 в этом отношении) совершенно произвольно, так как это число не имеет значения для пользователя - оно используется системой только в качестве ссылки. Начинается ли он с 0, 1 или 4 536 901, это не является критическим решением для проектирования.

Я думаю, что проблема, которую вы подняли, является на 100% действительной; начинание с 0 может вызвать побочные эффекты, некоторые из которых могут закончиться ошибками, которые трудно обнаружить. Отказ от этого далеко перевешивает чье-либо возражение против произвольного / эстетического желания начать нумерацию с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...