【发布时间】:2015-05-05 14:16:49
【问题描述】:
我几乎完成了一个大型应用程序的工作;几天前,我看到了 Martin Fowler 关于“NOSQL”的演讲。之后我意识到我一直在使用 Mongo 作为关系数据库,所以我决定重构我的模式。但是,我从一个来自“RDBMS”世界的人那里听说了很多关于诚信的事情。我真的明白它的重要性,那么数据完整性可以在“NOSQL”引擎中实现吗?
更明确地说,这里是一个简单的例子:
假设我的系统中有product、inventory 实体,
在我的inventory 中,我引用product_id 来定义产品,
目前我的 mongo 收藏中的 inventory 看起来像这样{'inventory' :{'product_id' : '1', 'count' : 15}}
我可以像这样在我的系统中存储inventory:{'inventory' :{'product' : {'id' : 1, 'name' : 'book'}, 'count' : 15}}
并且仍然实现数据完整性?如果我在product 实体中更改产品名称_id : 1,会发生什么情况——我会循环更新所有inventory 集合吗?
【问题讨论】:
-
我真的认为您应该比您的问题更多地考虑“NoSQL”或“文档数据库”方法。这实际上取决于您的实际“用例”,因为在某些情况下,文档存储对“嵌入式架构”更有意义,而在其他情况下,使用大多数 SQL(关系)解决方案提供的关系结构更有意义。就目前的情况而言,对于任何可信的人来说,确实没有可靠的案例来回答这个问题。
标签: mongodb database-schema data-integrity nosql