Довольно много приложений требуют, чтобы записи в их таблицах имели статус, такой как «завершено», «черновик», «отменено». Каков наилучший способ хранения этих статусов? Чтобы проиллюстрировать то, к чему я клоню, приведу очень короткий пример.
У меня есть простое приложение для блога, и у каждого сообщения есть статус: опубликовано, черновик или ожидает рассмотрения.
На мой взгляд, есть два способа смоделировать это в базе данных.
- Таблица «Post» имеет текстовое поле, которое включает текст статуса.
- Таблица Post имеет поле состояния, которое содержит идентификатор записи в таблице PostStatus.
Пример блога здесь очень простой. Где может быть достаточно enum (если поддерживается). Однако я бы хотел, чтобы в ответах на этот вопрос учитывалось, что список статусов может измениться в любое время, чтобы можно было добавлять или удалять больше.
Кто-нибудь может объяснить преимущества / недостатки каждого?
Ура!
Мой первоначальный выбор заключается в том, что лучше использовать другую таблицу и искать состояние как лучшее для нормализации, и меня всегда учили, что нормализация хороша для баз данных