2017-02-15 20 views
2

Я знаю его глупый вопрос, но я хочу знать, что является хорошей практикой, когда я сохраняю значение int в базе данных вместо char.Что такое хорошая практика для сохранения значения в базе данных int или char?

Когда я хочу сэкономить недели в базе данных.

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

+4

Вы сохраняете строковые данные как символьные строки. Вы сохраняете числовые данные в виде чисел - и, если данные являются целыми числами, вы сохраняете их как целое число. Это не сложно и не противоречит интуиции. –

+1

Эта статья прекрасно объясняет проблемы с использованием неправильных типов данных. http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data-type.aspx –

+0

Оба ответа у вас в настоящее время отличные. Лично я не могу решить, что лучше, поэтому я поддержал и то, и другое. Единственное, что им не хватает, это ссылка, содержащаяся в комментарии Шона Ланге. Серия «Плохие habits» Аарона Бертранна должна быть прочитана для всех, кто работает с базами данных. –

ответ

5

char не делает его более описательным. Если вы собираетесь использовать это значение для чего-либо в базе данных, все равно его нужно будет преобразовать в число.

Если максимальное значение будет 52/53 (в зависимости от недели/isoweek), затем используйте tinyint. В противном случае используйте некоторые другие integer data type.

Еще одна потенциальная проблема - сортировка. Если вы собираетесь сортировать по неделе, вы собираетесь хранить ведущие нули, чтобы они сортировали, чтобы просто использовать тип данных char, или оставить его сортировкой как 1, 11, 12..?

+2

проголосовал за это очень важный намек на * сортировку *! – Shnugo

+0

Спасибо за ответ. –

+0

@ DurgpalSingh Рад помочь! – SqlZim

3

Это предложение ист проблемы:

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

Значения в базе данных не должны быть разработаны, чтобы быть описательной.

Один должен всегда сохранять значения в соответствующих типах данных!

Только представьте, у вас есть необходимость, чтобы вычислить разницу. Вам придется разделить/разбор строки, применить ее к числовому типу, выполнить вычисление и переформатировать вывод.

Описательный - это слово, которое вы должны использовать только в связи с уровнем представления, отчетностью и интерфейсом.

+0

Спасибо за ответ. –