データベースで XML を使用して非常に複雑なオブジェクト グラフをモデル化し、残りのシステムをリレーショナル テーブルに残すことは容認できますか?
少し難問にぶつかったので、これについて意見を述べたいと思います。
どうもありがとう
--------------------
バックグラウンド
私は金融アプリケーションを構築していますが、データ ストレージの点ではまったく大きくありませんが (<= 最初は数十メガバイト)、非常に複雑なデータ モデルを持ちます。
具体的には、ユーザーは、さまざまなサブエンティティとリストを含む「プロジェクト」エンティティのコンテキスト内で作業します。ユーザーは、このオブジェクト グラフのさまざまな部分に式を追加でき、リアルタイムで継続的に再計算されます。
複雑さは次の 2 つの部分に分けられます。
クラス階層のどこに式が配置されていても、パスのような構文を使用して、同じ親プロジェクト エンティティの他の部分に到達できます。これには、他の数式の結果が含まれます。これらすべてを、中間層のメモリ内依存関係ツリーで実装します。
すべての数式に同じ基本構造、メタデータなどを持たせたいと考えています。これを実現するには、データ グラフのどの部分に関連付けられているかに関係なく、すべての数式をコード内で同じクラス構造で表します。
すべてをドキュメントにまとめたほうがよいでしょう。データベース設計に費やす時間が大幅に短縮され、同じ量の労力でより豊富なオブジェクト モデルを作成できるようになるからです。リレーショナルの整合性については心配ですが、静的データをリレーショナル テーブルに格納したいと考えています。
テクノロジー
- SQL サーバー 2012。
- .Net 4.5 (C#経由)
- 中間層の Entity Framework (データベースが最初)
- サービス用の WCF を介した単純な自動生成 DTO
- クライアント上の Prism を使用した WPF。
私は NoSQL ストレージのアイデアを検討したことがありません。主な理由は、タイムラインがタイトなプロジェクトの経験が十分にないためです。同じ理由で、Entity Framework のコード ファーストも考慮していません。