2009-07-31 2 views
1

Возможные Дубликаты:
Should I store Enum ID/values in the db or a C# enumeration?
Persisting Enums in database tablesСохранение перечисляемые константы в базе данных

Быстрый и простой вопрос, который, вероятно, будет фураж для обсуждения:

Допустим, мое приложение имеет перечисление с 2-3 значениями, которые в принципе никогда не изменятся.

Считаете ли вы, что они должны быть представлены в базе данных в их собственной таблице, а затем ссылаться на другие таблицы через отношения с внешним ключом? Или они должны храниться в соответствующих таблицах как простые целочисленные поля, содержащие значение перечисления?

Пожалуйста, объясните свой ответ, а также в отношении сторонников приверженности полному третьему нормальному оформлению формы.

+0

Точный обман: http://stackoverflow.com/questions/791030/should-i-store-enum-id-values-in-the-db-or-a-c-enumeration –

ответ

1

То, что я делаю, это хранить целочисленное значение перечисления в соответствующем столбце таблицы, а также иметь таблицу в базе данных, которая представляет перечисление (с соответствующими идентификаторами, соответствующими значениям перечисления). Да, это означает, что вам нужно постоянно обновлять как перечисление, так и таблицу enum, но, как вы сказали, они редко меняются, поэтому это не имеет большого значения. Преимущество состоит в том, что вы можете использовать реальные имена в своем коде с перечислением, а затем получить имя этого значения перечисления при запросе базы данных.

1

Простые целочисленные поля (без дополнительной таблицы) будут выполнять работу. Это все упрощает.

1

Храните их как простые целочисленные поля, но также иметь таблицу для перечисления с целым числом и описанием. Это можно соединить или назвать необходимым.

0

Если эта проблема возникает только один раз, вы должны использовать целочисленные поля (стратегия KISS), но если у вас много перечислимых значений, вы можете иметь таблицу с древовидной структурой для их хранения.

0

Я бы сохранил их как простые целочисленные поля, содержащие значение перечисления в соответствующих таблицах. Вы можете обратиться за помощью, иметь таблицу поиска с указанным значением перечисления вместе с соответствующим описанием. Моей причиной такого мнения является то, что вы не хотите вводить дополнительное ненужное соединение, которое вам нужно будет сделать, если вы не сохранили значение перечисления в самой таблице.