Почему кто-то использует числовой (12, 0) тип данных для столбца простого целочисленного идентификатора? Если у вас есть причина, почему это лучше, чем int или bigint, я бы хотел его услышать.
Мы не делаем математику в этом столбце, это просто идентификатор, используемый для связи с внешним ключом.
Я составляю список ошибок программирования и проблем с производительностью продукта, и я хочу быть уверенным, что они не сделали этого по какой-то логической причине. Если вы выполните следующую ссылку: http://msdn.microsoft.com/en-us/library/ms187746.aspx
... вы можете видеть, что числовое (12, 0) использует 9 байтов хранения и ограничено 12 цифрами, в общей сложности 2 триллиона чисел, если вы включаете негативы. ПОЧЕМУ человек использовал бы это, когда они могли бы использовать bigint и получить в 10 миллионов раз больше чисел с одним байтом меньше хранилища. Кроме того, поскольку это используется как идентификатор продукта, 4 миллиарда номеров стандартного int были бы более чем достаточно.
Итак, прежде чем я возьму факелы и вилки, скажи мне, что они собираются сказать в их защиту?
И нет, я ничего не делаю из ничего, в программном обеспечении есть сотни таких проблем, и все это вызывает огромную проблему с производительностью и слишком много места в базе данных. И мы заплатили более миллиона баксов за это дерьмо... поэтому я отношусь к этому серьезно.