Определение статуса данных через Enum или таблицу отношений - PullRequest
1 голос
/ 20 августа 2010

У меня есть приложение, в котором есть строки данных в базе данных отношений, для таблицы требуется статус, который всегда будет либо

Не отправлено, ожидает одобрения, одобрено, отклонено

Теперь, так как они никогда не изменятся, я пытался выбрать наилучший способ их реализации, поэтому я могу подумать о перечислении Status со значениями и int, назначенным, где int помещается в столбец status в строке таблицы.

Или таблица состояния, которая связана с таблицей, и пользователь выбирает одну из них в качестве текущего состояния.

Я не могу решить, какой вариант лучше, так как в настоящее время у меня есть перечисление с этими значениями для страниц утверждения, чтобы заполнить раскрывающийся список и т. Д., И настроить sql (как он в настоящее время использует для bool. это грязно по разным причинам и потребности изменились).

Интересно, что вы подумали об этом и стоит ли мне идти за тем или другим.

Если есть какая-то разница, я использую Entity Framework.

Ответы [ 3 ]

1 голос
/ 20 августа 2010

Теперь, так как они никогда не изменятся ...

Вы можете рассчитывать на то, что это предположение неверно и раньше, чем вы думаете.

Я бы использовал таблицу поиска. Гораздо проще добавить или изменить значения в справочной таблице, чем изменить определение перечисления.

Вы можете использовать естественный первичный ключ в таблице поиска, поэтому вам не нужно делать соединение, чтобы получить значение. Да, строка занимает немного больше места, чем целочисленный идентификатор, но если ваша цель - избежать объединения, это достигнет этой цели.

1 голос
/ 20 августа 2010

Я использую Enums и использую атрибут [Description("asdf")] для связывания осмысленных предложений или других вещей, которые не допускаются в Enums. Затем используйте сам текст перечисления в качестве значения в раскрывающихся списках, а описание - в качестве видимого текста.

1 голос
/ 20 августа 2010

Я бы пошел с Enum, если он никогда не изменится, так как он будет более производительным (нет объединения, чтобы получить статус).Кроме того, это более простое решение:).

...