【发布时间】:2013-10-29 05:35:49
【问题描述】:
我听说过更多关于 NoSQL 的信息,但还没有人向我解释如何使用它来代替关系数据库。
我读到它不能做到left joins,所以我试图弄清楚你如何能够使用这样的数据存储。从阅读中:Preserve Joins by code in MongoDB 似乎建议只是制作一个大表,就好像您已经在其上进行了联接一样。
如果上面的说法是真的,那么我可以看看它是如何使用的。但是我很好奇您将如何处理重复数据。作为规范化的概念,可以帮助您消除冗余并确保数据的一致性(例如,大小写、空格等轻微修改)...
我们只是为了可扩展的速度而牺牲了数据的一致性,还是我遗漏了什么?
编辑
我一直在做更多的挖掘工作,发现以下问题的答案有助于澄清我的理解:
从这些答案来看,我对一致性的理解似乎是正确的。看起来 NoSQL 应该用于特定的问题类型,如果你需要关系,你应该使用关系数据库。
但这会引发更多问题,例如:
- 这让我想知道现实生活中何时使用 NoSQL 与何时不使用的例子?
- 通过对数据进行非规范化,您应该能够解决关系数据库所做的所有相同问题......但是对于如何使用关系数据库对数据进行规范化,有一些规则。是否有规则可以帮助他们对数据进行非规范化以使用 NoSQL 解决方案?
- 任何示例说明您何时可能需要考虑同时使用 NoSQL 解决方案和关系数据库?
【问题讨论】:
-
NoSQL 不仅仅是 MongoDB。有一大堆新的数据库技术以完全不同的理念和用例分组在标签下,它们的共同点是它们与 SQL 数据库也有共同点。
标签: mongodb relational-database left-join normalization nosql