NoSQL - 围绕重复

时间:2016-05-20 07:26:42

标签: mongodb nosql

我来自一个强大的RDBMS背景,我试图围绕我如何构建一个NoSQL项目。从我所看到的,正常化被忽视,有利于速度。

比如说我有一个博客和类别。在MySQL中,我会有一个blog表和categories表,由blog_categories表连接以维持多对多关系。我只是使用JOIN来相应地显示网站上的数据。

很容易。

但是使用NoSQL:

  1. 我是否会将博客类别与博客文章一起存储在同一文档中?因此,如果类别" general"," news"和"文章"被分配到一篇文章,我会保存这些数据以及适用于每篇文章的文章吗?

  2. 这是否意味着如果我想重命名" news"对于最新消息",我需要循环浏览所有博客文章及其类别,并手动更新" news"的每个实例。类别?

1 个答案:

答案 0 :(得分:0)

您可以使用博客存储博客类别,但这取决于您的博客的工作方式。它会更快,但你不能:

1)轻松获取所有标签的列表 2)更改标签的名称

我倾向于如何做有一个标签表,并使用一种称为手动参考的技术来填充屏幕上的数据。

简而言之,它意味着拥有一系列标签,如:

{
    _id : tag1,
    tagName : "news"
}

然后在你的博客中:

{ 
    _id : blog1,
    blogTitle : "Title",
    blogBody : "..."
    tags : [
         tag1,
         .... 
    ]
}

通过这种方式,您可以获得所需的功能。有关手动引用的更多信息,请参阅mongodb文档:

https://docs.mongodb.com/manual/reference/database-references/#manual-references