2012-01-10 80 views
0

我开始关注NoSQL数据库。
我想我的主要概念是将数据存储为“映射”,即NoSQL通过唯一标识区分的键值对。NoSQL数据库(地图)

在这一点上我很困惑(关于设计数据库时)。

这是否(数据存储为“地图”)意味着我们存储在NoSQL集合中的数据必须是“同质的”?
Map相同Java例如,其中的键都是相同的类型和值都是相同的类型?

也是在NoSQL数据库中支持参照完整性的概念吗?或者,因为它们存储为地图,我将不得不 编写代码手动更新任何相关集合?

回答

4

如果我们谈论的MongoDB:

  • 上有DB侧没有参照完整性强制执行。您必须在应用程序代码中执行此操作。触发器和级联更新/删除也在你身上。

  • 文档可以是复杂的树状结构,其中键是字符串,值可以是different types

  • 文件不需要是同质的。同一个集合可以包含任何结构和字段集的文档。

+0

@ Sergio:所以参考完整性实施是由其他NoSQL数据库提供的,但不是由MongoDB提供的?这是您在第一个注释中的含义吗? – Cratylus 2012-01-10 08:38:41

+0

@ user384706:我非常了解MongoDB。其他解决方案 - 不是很多。但是,从我的头顶来看,我不能说出其中一个这样做。他们被称为“NoSQL”的原因是:-) – 2012-01-10 08:40:42

+0

@ Sergio:我在那里看到一个名为Morphias的库,它在Mongo上执行一些ORM员工。如果我使用这样的库,他们会不会照顾参考完整性? – Cratylus 2012-01-10 09:54:54