6

OK、めちゃくちゃ複雑な保険加入データの適格性とレートを計算する必要があります。ポリシーは、年齢、雇用特性、靴のサイズなどに基づいて利用できます。1962年より前に生まれた人は、テキサスに住んでいてプードルを持っている場合を除き、除外される場合があります。

したがって、仕様パターンを実装するクラスを構築できます。入れ子にして仕様、仕様などができます。それは素晴らしいことです。しかし、これをデータベースにシリアル化するにはどうすればよいでしょうか。

c#クラスをxmlにダンプし、そのままにしておくことができます。しかし、それは脆弱ですが、照会することはほとんど不可能です。クラスをxmlにシリアル化し、それを大きなテキストフィールドにダンプすることには、明確なコードの臭いがあります。

ネストされた仕様をデータベースに入れる方法に対する標準的な答えはありますか?私のGoogle-fuは私に失敗します。

4

2 に答える 2

1

正規化、それは多くのプロジェクトの悩みの種になる可能性があります。

一般に、クエリを実行できる(したがってインデックスを作成できる)すべての列に個別の列を設定し、他のすべての列をシリアル化された形式でBLOBにダンプするという実用的なアプローチを選択します。

これが選択肢にない場合は、すべての行に適用できない列を作成して、テーブルに冗長性を導入する必要があります。

私はまだこの種の問題への万能のアプローチに出くわしていません。

于 2012-04-26T15:18:50.770 に答える
1

リフレクションを使用すると、クラスを保持するために必要なのは、完全修飾された名前だけです。したがって、それをデータベースに保存します。

于 2012-06-03T19:06:33.330 に答える