在数据库中使用 XML 对非常复杂的对象图进行建模,但将系统的其余部分保留在关系表中是否可以接受?
我想评估一下对此的看法,因为我遇到了一个难题。
非常感谢
--------------------
背景
我正在构建一个金融应用程序,虽然在数据存储方面一点也不大(最初 <= 数十兆字节),但它将有一个非常复杂的数据模型。
具体来说,用户将在“项目”实体的上下文中工作,该实体将包含各种子实体和列表。用户将能够向该对象图的不同部分添加公式,并且它们将被实时不断地重新计算。
复杂性分为两部分:
无论公式位于类层次结构中的哪个位置,它都可以使用类似路径的语法到达同一父项目实体的任何其他部分。这将包括其他公式的结果,并且我将使用中间层上的内存依赖树来实现所有这些。
我希望所有公式都具有相同的基本结构、元数据等。为此,所有公式都将在代码中由相同的类结构表示,而不管它们附加到数据图的哪个部分。
我宁愿把整个东西都放在一个文档中——这意味着花在数据库设计上的时间要少得多,而且我可以用同样多的努力得到一个更丰富的对象模型。我担心关系完整性——我仍然想将我的静态数据存储在关系表中。
技术
- SQL 服务器 2012。
- .Net 4.5(通过 C#)
- 中间层的实体框架(数据库优先)
- 通过 WCF 为服务自动生成的简单 DTO
- 客户端上带有 Prism 的 WPF。
我没有考虑过 NoSQL 存储的想法,主要是因为我对时间紧迫的项目没有足够的经验。出于同样的原因,我也没有考虑过实体框架代码优先。