【问题标题】:CouchDB / NoSQL and Domain Driven Design?CouchDB / NoSQL 和领域驱动设计?
【发布时间】: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


【解决方案1】:

【讨论】:

  • 谢谢。当你写下你的回复时,我已经开始走 CQRS 的道路,希望会有一个交叉(存储只是追加)。我很好奇 CouchDB 是否采用了与 CQRS 不同的方法来尝试一起消除 3NF。但似乎相当清楚的是有相当多的交叉。我一定会从中受益的。
猜你喜欢
  • 2016-09-29
  • 1970-01-01
  • 2011-10-06
  • 2016-07-18
  • 2013-09-16
  • 1970-01-01
  • 1970-01-01
  • 2015-03-30
相关资源
最近更新 更多