我们目前有一个关系很好的 sql server 2008 数据库,它是我们的主应用程序数据库。我们正在寻求改进现有的文档存储机制,该机制使用 xml 数据类型和更无模式的东西,可以处理相似但不相同的文档,并认为 couchdb 非常适合。
这个想法是关于文档的通用元数据可以存储在 sql server 中以便于显示/聚合/报告,但实际文档存储在沙发上以处理文档中的细微差异。我们的想法是充分利用这两种不同的技术。
例如,创建的状态、类型、相关人员和日期都将在所有文档中通用并存储在 sql 中,但电子邮件和信件(显然具有不同的字段)可以存储在沙发上。
然后我们可以为所有类型的文档(数千个文档)显示我们的文档网格,这些文档可以通过 sql 查询,但是当用户请求查看文档时,文档的显示会从沙发上获取其数据。
需要记住的是,某些文档类型是从模板生成的,这些模板本身也是文档(想想邮件合并/查找和替换)。
应用层是asp.net 4.5, c#, repository pattern, Windsor for ioc, JavaScript
那么,对于这个问题...
这种方法是充分利用两种不同的数据存储范例的明智方法吗?
为了“使用最合适的技术解决问题”,我们是否让我们的编程生活变得不必要的复杂?
有没有人尝试过类似的事情,如果有,效果如何?