Хранение небольших отрицательных значений - PullRequest
1 голос
/ 17 октября 2011

Примечание: Я понимаю, что этот вопрос не сильно повлияет на производительность или объем хранилища в моей базе данных, но мне интересно услышать мнения экспертов (если таковые имеются).

Я пишу приложение, которое должно выполнить операцию со значением datetime и сохранить полученное смещение в базе данных.Я ожидаю, что смещения останутся прежними (около -3), но потому, что исходная дата (начальная дата каждого семестра) устанавливается комитетом уровня колледжа, и потому что мое приложение имеет дело с контактами со студентами через регулярные, предсказуемые интервалы(который также будет установлен комитетом) возможно, что он может быть между -30 и 30.

Я изначально намеревался сохранить результирующее смещение как tinyint, но поскольку оно не подписано в SQL Server 2008Я не уверен, что будет работать лучше здесь.Должен ли я использовать smallint или что-то вроде numeric(2,0)?

Ответы [ 4 ]

5 голосов
/ 17 октября 2011

Просто используйте smallint. Не думай об этом.

(Вставьте стандартный текст о преждевременной оптимизации здесь.)

2 голосов
/ 17 октября 2011

Numeric(2,0) на самом деле займет 5 байтов памяти , поэтому я бы предложил smallint, что только занимает 2 байта .

2 голосов
/ 17 октября 2011

numeric(2,0) имеет размер хранилища из 5 байтов против 2 байта для smallint, поэтому просто используйте smallint.

0 голосов
/ 17 октября 2011

В зависимости от ваших ограничений по размеру, я бы предпочел менее подверженную ошибкам реализацию и предоставил бы себе достаточно свободы при минимальных / максимальных значениях. Используйте тип данных, который будет соответствовать вашим потребностям сегодня и в будущем для всех возможных случаев. Если вам кажется, что вам может понадобиться хранилище, укажите себе больший тип данных.

В любом случае уровень доступа к данным должен соответствовать размеру столбца базы данных.

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