выбор типа ключа первичного ключа числовой (18,0) - PullRequest
6 голосов
/ 03 июня 2011

Я унаследовал базу данных SQL Server, где многие таблицы имеют первичный ключ типа numeric(18,0).

По каким причинам (возможно, историческим?) Кто-то выбрал бы этот тип данных для первичного ключа?

Ответы [ 4 ]

6 голосов
/ 03 июня 2011

Я бы предположил, что база данных SQL Server изначально была разработана в версии, предшествующей SQL Server 2000, и это был единственный способ получить целое число, большее, чем стандартное int. С тех пор бигинт был бы более уместным.

1 голос
/ 03 июня 2011

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

0 голосов
/ 18 марта 2013

Если вы разрешите Hibernate генерировать вашу схему, он преобразует тип данных Long в числовой (19,0) с помощью jtds. Нечто подобное могло случиться и в вашем случае.

0 голосов
/ 03 июня 2011

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

На самом деле я не использую SQL-Server, но целое число в моей базе данных - это 32-битное число, а не 64-битное. Как указывалось в другом ответе, вполне вероятно, что он начался в базе данных, где имелось такое ограничение.

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