更新非规范化重复数据

时间:2016-10-19 12:08:02

标签: mongodb nosql

尝试从RDBMS迁移到NOSQL(特定的MongoDB)。 所以我到目前为止已经做了几件事:

1)nosql

的非规范化是正常的

2)数据重复没问题。

所以我对重复的数据更新感到困惑......

让我们想象我们有汽车和船只。它们具有共同的颜色属性。然后我们决定重命名颜色。我们不想使用" Red",我们想使用" Bright red"代替。

RDBMS案例: 因此,例如在RDBMS中,我将有三个表: car,boat,color。 Car and Boat有外键链接到Color表。我只用一个查询更新一个表并获得一致的数据。

NOSQL案例 我有两个系列......船和汽车。我们为每个文件都有色域。例如。 船 { 颜色:"红色&#34 ;, 类型:"快速" }

汽车{ 颜色:"红色&#34 ;, 类型:"慢" }

因此,当我想更改颜色名称时,我应该运行两个查询(对于每个集合)并更新每个文档,其中color ==" red"?但是如果我有几十个带有重复的集合并且可以忘记其中一个呢?是否有任何常见的方法/数据库设计可以避免/轻松应对此类情况?或者这是nosql权衡之一?

2 个答案:

答案 0 :(得分:1)

1)nosql

的非规范化是正常的

虽然nosql确实没问题,但对于你的特定项目可能还不行。当你决定使用sql或nosql时,你应该权衡利弊。

2)nosql

的非规范化是正常的

这主要是非规范化的结果,所以同样适用于此。

答案 1 :(得分:0)

SQL 就像在 4 年制大学获得完整的计算机科学学位。 Mongo 就像获得 6 周编码训练营的捷径。所有的捷径都有它的缺陷和弱点。随着时间的推移,弱点是“数据损坏”。哎呀!为数据库支付的严重代价。为什么 ?提示:尝试将 50,000 红色更新为亮红色,没有应用程序可以如此可靠。