【发布时间】:2012-07-06 18:25:10
【问题描述】:
由于遗留系统问题,我正在考虑将 CQRS 读取模型存储在 SQL Server 表中(请参阅this question 的方法 2 和 3)。
虽然我想使用 MongoDB 等文档数据库来实现读取模型,但由于目前无法重新设计外部系统,所以我现在坚持将所有内容都保存在 rdbms 中。
由于我正在考虑以适当的非规范化方式存储记录,因此在处理典型的分层数据(例如典型的 Customer / Order / LineItems /etc)时,实际存储它们的最佳方式是什么?显示在同一个视图中? [编辑:我的想法是我将查询模型所需的数据放在单独的字段中,但将完整对象放在“对象数据字段”中]
由于我的遗留系统(主要是我无法控制),我正在考虑将触发器添加到遗留系统表或进行存储过程更改以使我的读取模型保持最新,但我应该如何实际存储数据本身?
我考虑将它们作为 JSON 存储在一个字段中,或者将它们存储为 XML,因为两者都可以轻松地从 .net 应用程序进行序列化/反序列化,并且可以通过数据库中其他活动的触发器合理地轻松更新。 (Xpath/XQuery 习惯了还不错,从another answer这里,我找到了JSON parser for T-SQL)
有没有更好的方法?如果不是,我应该使用 XML 还是 JSON?
【问题讨论】:
标签: sql-server views cqrs denormalized