2009-07-31 4 views
1

重複の可能性:
Should I store Enum ID/values in the db or a C# enumeration?
Persisting Enums in database tables保存列挙定数

おそらく議論のための飼料になります迅速かつ簡単な質問:

のは、私のアプリケーションが持っているとしましょう基本的に決して変更されない2〜3の値を列挙します。

これらはデータベース内で独自のテーブルで表現され、次に外部キーの関係を介して他のテーブルから参照されるべきだと思いますか?または、列挙型の値を含む単純な整数フィールドとして適切なテーブルに格納する必要がありますか?

完全な第3正規形設計を忠実に支持する主題に関しても答えを説明してください。

+0

完全一致:http://stackoverflow.com/questions/791030/should-i-store-enum-id-values-in-the-db-or-a-c-enumeration –

答えて

1

私は、列挙型の整数値を適切なテーブルの列に格納するだけでなく、列挙型を表すデータベースに列挙型の値と一致するIDを持つテーブルを持っています。はい、列挙型と列挙型の両方のテーブルを最新の状態に保つ必要があることを意味しますが、あなたが言ったように、変更することはめったにないので大きな問題ではありません。その利点は、コード内で実際の名前を列挙型で使用し、その列挙型の名前をデータベースに照会するときに取得できることです。

1

単純な整数フィールド(追加のテーブルなし)が作業を行います。それはすべてを簡単に保ちます。

1

単純な整数フィールドとして格納しますが、整数と説明を含む列挙型のテーブルも格納します。これは、必要に応じて結合または参照することができます。

0

この問題が1回しか発生しない場合は、整数フィールド(KISS戦略)を使用する必要がありますが、列挙値が多い場合は、ツリー構造を持つテーブルを格納することができます。

0

私はそれらを列挙型の値を含む単純な整数フィールドとして適切なテーブルに格納します。参照のために、それぞれの列挙値が対応する記述とともに列挙されたルックアップテーブルを持つことができます。この意見の私の理由は、テーブル自体に列挙型の値を格納していない場合には、余分な不要な結合を導入したくないということです。

関連する問題