Мне нужен столбец состояния, который будет иметь около десятка возможных значений.
Есть ли причина, по которой я должен выбрать int (StatusID) вместо char (4) (StatusCode)?
Поскольку сервер sql не поддерживает именованные константы, char используется гораздо более наглядно, чем int, когда используется в хранимых процедурах и в представлениях в качестве констант.
Чтобы уточнить, я бы все равно использовал таблицу поиска в любом случае. Поскольку мне понадобится более описательный текст для пользовательского интерфейса. Поэтому это решение помогает мне как разработчику, когда я поддерживаю хранимые процедуры и представления.
Прямо сейчас я склоняюсь к полукоксу (4). Тем более, что проектирование представлений в SQL Server Management Studio не позволяет мне добавлять комментарии (я знаю, что это возможно добавить в редакторе сценариев, но реально я буду использовать View Designer гораздо чаще, особенно если представление тривиально). StateCODE = 'NEW' гораздо лучше читается, чем StateID = 1000.
Я предполагаю, что вопрос в том, будут ли случаи, когда char (4) проблематичен, и, поскольку база данных довольно мала, меня не слишком беспокоит небольшое снижение производительности (например, использование TinyInt по сравнению с int), но я больше боюсь проблем с поддержкой кода .