小编Boc*_*Lin的帖子

NoSql参考数据

免责声明:通过参考数据,我不是指参照完整性

我正在学习nosql,并想了解数据应该如何建模.例如,在CMS应用程序的典型关系数据库中,您可能有两个表:article和author,其中article引用了作者.

在nosql系统中,您可以通过这种方式创建文章文档,因为它们只是伪装的对象图

{
title: "Learn nosql in 5 minutes",
slug: "nosql_is_easy", 
author: {firstName: "Smarty"
          lastName: "Pants"
}

{
title: "Death to RDBMS",
slug: "rdbms_sucks", 
author: {firstName: "Smarty"
          lastName: "Pants"
}
Run Code Online (Sandbox Code Playgroud)

等等...

有一天,Smarty Pants先生决定将他的名字改为Regular Joe,因为nosql已经无处不在.在这种用例中,需要扫描每篇文章并更新作者姓名.

所以我的问题是,如何在nosql中建模数据以适应CMS的基本用例,以便性能与RDBMS相当或更快?例如,mongodb声称CMS是一个用例......

编辑:

很少有人建议将数据标准化,例如:

article 
{
title: "Death to RDBMS",
slug: "rdbms_sucks", 
author: {id: "10000001"}
}

author
{
name: "Big Brother",
id: "10000001"
}
Run Code Online (Sandbox Code Playgroud)

但是,由于nosql在设计上缺少连接,因此必须使用类似mapreduce的函数将数据组合在一起.如果这是您的建议,请评论此类操作的执行情况.

编辑2:

如果您认为nosql不适合需要参考数据的任何类型的数据,请解释原因.这似乎使得nosql的用例相当有限,因为任何合理的应用程序都将包含关系数据.

编辑3:

Nosql并不意味着非关系型

couchdb mongodb cassandra nosql

15
推荐指数
2
解决办法
4737
查看次数

标签 统计

cassandra ×1

couchdb ×1

mongodb ×1

nosql ×1