У меня есть статус котировки, который является либо ПРОЕКТОМ, ОТПРАВЛЕННЫМ, WON или LOST. Обычно я создавал бы таблицу поиска с идентификатором, именем, а затем связывал бы через quote_status_id, но в этом случае, когда состояния управляются системой, например. пользователи не могут создавать статусы, лучше ли использовать строку?sql lookup id vs fixed string
FYI в моем конкретном случае Я разрабатываю rest api и несколько передних концов, например. SPA и мобильное приложение, поэтому мне нужно синхронизировать состояния между бэкэнд и интерфейсом, но в зависимости от состояния есть некоторые пользовательские рабочие процессы. Вероятно, это не влияет на мой первоначальный вопрос, но мне интересно, может ли строка немного упростить мою разработку.
Одним из недостатков в использовании проверочных ограничений является то, что вы потеряете некоторую будущую ремонтопригодность. Скажем, вы хотели добавить описание для каждого статуса, теперь вам нужно создать дополнительный столбец в своей таблице с повторными данными. Я не говорю, что ответ неправильный, но, как администратор базы данных, я предпочитаю подход к дизайну с отношением «ожидай, что все изменится за 6 месяцев». Вы получаете помощь в хакерских исправлениях гораздо реже. – Dmihawk