尝试从RDBMS迁移到NOSQL(特定的MongoDB)。 所以我到目前为止已经做了几件事:
1)nosql
的非规范化是正常的2)数据重复没问题。
所以我对重复的数据更新感到困惑......
让我们想象我们有汽车和船只。它们具有共同的颜色属性。然后我们决定重命名颜色。我们不想使用" Red",我们想使用" Bright red"代替。
RDBMS案例: 因此,例如在RDBMS中,我将有三个表: car,boat,color。 Car and Boat有外键链接到Color表。我只用一个查询更新一个表并获得一致的数据。
NOSQL案例 我有两个系列......船和汽车。我们为每个文件都有色域。例如。 船 { 颜色:"红色&#34 ;, 类型:"快速" }
汽车{ 颜色:"红色&#34 ;, 类型:"慢" }
因此,当我想更改颜色名称时,我应该运行两个查询(对于每个集合)并更新每个文档,其中color ==" red"?但是如果我有几十个带有重复的集合并且可以忘记其中一个呢?是否有任何常见的方法/数据库设计可以避免/轻松应对此类情况?或者这是nosql权衡之一?
答案 0 :(得分:1)
1)nosql
的非规范化是正常的虽然nosql确实没问题,但对于你的特定项目可能还不行。当你决定使用sql或nosql时,你应该权衡利弊。
2)nosql
的非规范化是正常的这主要是非规范化的结果,所以同样适用于此。
答案 1 :(得分:0)
SQL 就像在 4 年制大学获得完整的计算机科学学位。 Mongo 就像获得 6 周编码训练营的捷径。所有的捷径都有它的缺陷和弱点。随着时间的推移,弱点是“数据损坏”。哎呀!为数据库支付的严重代价。为什么 ?提示:尝试将 50,000 红色更新为亮红色,没有应用程序可以如此可靠。