質問

配信ステータスコードの列挙があります。そして、配信データをデータベースに保存すると、同じデータ(つまり同じ配信コード)を含むテーブルへの外部キーとともに保存されます

列挙をデータベース内のデータと同期させるための最良の戦略は何ですか?

データベースに新しいコードが追加されたときに、列挙に追加することを覚えていますか?

または、アプリケーションの起動時にデータを辞書にロードしますか?そして、列挙の代わりに辞書を使用しますか?ただし、これは厳密に型指定されたデータの表現を持っていないことを意味します-これは間違いなく必要です。

他に何かありますか?

データはそれほど揮発性ではありませんが、ブルームーンごとに新しいコードが追加されます

提案があれば感謝します。

ありがとう

役に立ちましたか?

解決

Visual Studio 2008でT4テンプレートを使用します。これにより、ビルド中にコード生成を強制でき、必要な各テーブルのEnumを生成します。

適切な出発点は、 Hilton Giesenowのサンプル。これはあなたの質問に正確に答えていると思います。

別の角度からのより興味深いアプローチは、SQLビューを使用してデータベースの列挙をエミュレートすることです。このようにして、データベースをC#(または他の)コードと同期します。 Oleg Sychのブログこちら

他のヒント

コードで列挙を使用する場合、通常、データベースに列挙値のテーブルを保持するのではなく、フォーマットされた名前をvarcharとしてデータベースに保存します。私はこれが人が好むほど正規化されていないことを理解していますが、データベースと私の列挙を同期させておくよりは良いと思います。必要なのは、挿入/更新時にフォーマットし、選択時に解析して値を列挙に再構成することです。

これは、列挙が修正されると思われる場合にのみ行います。ただし、あまり頻繁に更新していません。データが定期的に更新される可能性が高いと思われる場合、列挙を使用せず、データベースに外部キー参照を含む別のテーブルを作成します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top