Каков лучший тип данных для содержания процентных значений в пределах от 0,00% к 100,00%?
Предполагая два знака после запятой для ваших процентов, тип данных, который вы используете, зависит от того, как вы планируете хранить ваши проценты. Если вы собираетесь хранить их дробный эквивалент (например, 100,00% хранится как 1,0000), я бы хранил данные в типе данных decimal(5,4)
с ограничением CHECK
, которое гарантирует, что значения никогда не превысят 1,0000 (предполагается, что это верхний предел) и никогда не опустятся ниже 0 (предполагается, что это нижний предел). Если вы собираетесь хранить их номинальное значение (например, 100,00% хранится как 100,00), то вам следует использовать decimal(5,2)
с соответствующим ограничением CHECK
. В сочетании с хорошим именем столбца это дает понять другим разработчикам, что это за данные и как они хранятся в столбце.
Если 2 десятичных разряда - ваш уровень точности, тогда "smallint" обработает это в наименьшем пространстве (2 байта). Вы сохраняете процент, умноженный на 100.
РЕДАКТИРОВАТЬ: десятичный тип , вероятно, лучше подходит. Тогда вам не нужно масштабировать вручную. На каждое значение требуется 5 байтов.