Disclaimer: by referential Data, i do not mean referential integrity
我正在学习nosql,希望了解数据应该如何建模.例如,在CMS应用程序的典型关系数据库中,可能有两个表:article和author,其中article引用了author.
在nosql系统中,您可以这样创建一个文章文档,因为它们只有disguised object graph个
{
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"
}
等等
比如说有一天,Smarty Pants先生决定将自己的名字改为普通的Joe,因为nosql已经无处不在.在这种情况下,每一篇文章都需要扫描并更新作者姓名.
所以我的问题是,数据应该如何在nosql中建模,以适合CMS的基本用例,从而实现the performance is on par or faster than RDBMS?例如,mongodb声称CMS是一个用例...
Edit:
很少有人建议对数据进行标准化,比如:
article
{
title: "Death to RDBMS",
slug: "rdbms_sucks",
author: {id: "10000001"}
}
author
{
name: "Big Brother",
id: "10000001"
}
然而,由于nosql在设计上缺乏连接,因此必须使用类似mapreduce的函数来将数据汇集在一起.如果这是你的建议,请对此类行动的表现发表 comments .
Edit 2:
如果您认为nosql不适合任何需要参考数据的数据,请解释原因.这似乎使nosql的使用情况变得相当有限,因为任何合理的应用程序都会包含关系数据.
Edit 3: