Каков наилучший дизайн для стола, Type
поля int
или char(1)
? Другими словами, учитывая эту схему:
create table Car
(
Name varchar(100) not null,
Description varchar(100) not null,
VehType .... not null
)
Это более эффективно (с точки зрения производительности) для того, VehType
чтобы быть int
или char(1)
? Скажем, у вас есть пять типов автомобилей, должны ли вы использовать приращения значений 0 -> 4 или символы для типов (скажем, 'v', 's', 'c', 't', 'm')?
Если бы это было больше, я бы использовал отдельную таблицу типов и имел бы связь с внешним ключом, но я не вижу в этом необходимости.
Я заметил, что представление sys.objects
каталога использует символ для type
поля. Есть ли причина для этого? Я просто хватаюсь за воздух и могу ли я чувствовать себя более комфортно?
источник
Так же, как дополнение к великому ответу ГБН .
Может быть, вы могли бы создать что-то вроде этого:
Таким образом, вы можете делать все что угодно с вашим перечислением, сохраняя целостность отношений (используя внешний ключ). С помощью
code
столбца вы можете использовать свои коды символов по своему усмотрению, чтобы они документировались в базе данных (и вы можете извлекать информацию о коде непосредственно из БД, без сложного преобразования кода приложения для системной интеграции).источник
null
код?