【发布时间】:2017-03-01 01:43:20
【问题描述】:
尝试从 RDBMS 迁移到 NOSQL(具体为 MongoDB)。 到目前为止,我已经完成了几件事:
1) nosql 可以进行非规范化
2) 数据复制没问题。
所以我对重复的数据更新感到困惑......
假设我们有汽车和船只。它们具有共同的颜色属性。然后我们决定重命名颜色。我们不想使用“红色”,而是要使用“亮红色”。
RDBMS 案例: 因此,例如在 RDBMS 中,我将拥有三个表:car、boat、color。 Car 和 Boat 具有链接到颜色表的外键。我将只用一个查询更新一个表并获得一致的数据。
NOSQL 案例: 我有两个系列……船和汽车。我们有每个文档的颜色字段。例如。 船 { 红色”, 快速打字” }
汽车{ 红色”, 类型:“慢” }
所以当我想更改颜色名称时,我应该运行两个查询(针对每个集合)并更新 color == "red" 的每个文档?但是,如果我有几十个重复的集合并且可以忘记其中一个怎么办?是否有任何通用方法/数据库设计来避免/缓解此类情况?或者这是 nosql 的一种权衡?
【问题讨论】: