【发布时间】:2011-06-21 15:52:14
【问题描述】:
为 CouchApp 项目做一些研究。
我了解文档数据存储与常规 RDBMS 的概念。而且我可以完全掌握建模文档和视图,而不是使用 WHERE 和 JOIN 语句。但是我还没有找到很多关于如何使用领域驱动设计 (DDD) 建模文档、视图和设计文档的资源。
例子:
- CouchDB 世界中的 DDD 禁忌(例如 GetObjectAFor(id, ... some other int, string, ObjectB, foobar) == BOOM)
- 当 DDD 开始指示您应该改用 SQL 时
- CouchDB 繁重工作和潜在瓶颈(视图建模、压缩、复制等)的 DDD 注意事项
【问题讨论】:
-
这篇文章似乎让我胃口大开(看起来 CouchDB 设计应该真正反映标准 DDD API 的样子),但在走这条路之前,仍然没有谈论性能考虑的细节。想法? - erenaykin.net/blog/?p=21
-
我真的不明白你在问什么或你担心什么。例如。 “当 DDD 开始指示您应该使用 SQL 时”是什么意思?我认为 DDD 永远不应该告诉你应该使用 SQL——仅仅因为“SQL”永远不应该成为你领域的一部分(除非你正在设计一个关系数据库......)。
-
你看过 stackoverflow 上的另一个帖子:stackoverflow.com/questions/1530745/… 吗?包含一些好的指针,不是特定于 DDD,而是一般地在 CouchDB 中建模数据。
-
DDD 不应该规定我使用哪种数据库技术。但是数据存储会显着影响我的域设计的效果。与 CQRS 的情况一样,在读取情况下处理 1NF 中的对象和在写入情况下处理 3NF 中的对象是很常见的。但是,当使用 CouchDB 等文档数据存储时,应用程序的主要部分(如果不是全部)在 1NF 中进行交互是很常见的。
标签: domain-driven-design nosql couchdb couchapp