Я начинаю проект, который извлекает данные и записывает их обратно в устаревшую системную базу данных. Я начал с модели предметной области и пытаюсь улучшить этот дизайн по сравнению с предыдущими системами, поэтому я хотел бы получить некоторые отзывы об этом.
Этот пример является произвольным, поэтому нет необходимости в конкретных советах, но, скажем, в базе данных есть таблица с именем "WorkflowStep", для которой я пишу класс. В таблице есть столбец с именем «CurrentStatus», который определяет, в каком состоянии находится рабочий процесс. Он хранится как varchar. Для этой колонки есть пять разных строк во всей таблице, и вряд ли они будут изменены ... значения, такие как "Open", "Closed", "On Hold" и т. Д.
Класс должен отслеживать это значение, но каким образом? Я мог бы пойти по простому пути и просто сохранить его в строке, но это не очень четко определено, и я бы предположил, что будущие разработчики будут искать разные значения строки для применения логики. Я мог бы пойти с перечислением, чтобы сделать вещи более четко определенными, но это могло привести к аду переключения / случая повсюду. Я читал подходы, в которых инженеры создают интерфейс, скажем «IStatus», а затем создают конкретные классы, которые представляют каждое возможное состояние статуса, но некоторые другие столбцы в той же ситуации, что и этот, могут иметь сто различных значений, поэтому 100 классы для каждого штата кажутся излишними.
Мой главный вопрос: является ли один подход де-факто лучше других, и если нет, что мне следует рассмотреть, чтобы выбрать подход?
Обратите внимание, что проект все еще находится в зачаточном состоянии, и я не уверен, как именно будет использоваться этот атрибут "status" класса. Это может быть даром, или это может оказаться жизненно важным: я еще не уверен.