【问题标题】:NoSQL - wrapping my head around the duplicationNoSQL - 让我的头绕着重复
【发布时间】:2016-09-17 08:30:04
【问题描述】:

我拥有强大的 RDBMS 背景,我正在努力思考如何构建 NoSQL 项目。据我所知,为了速度而忽略了规范化。

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

很简单。

但使用 NoSQL:

  1. 我会将博客类别与博客文章一起存储在同一个文档中吗?因此,如果将“一般”、“新闻”和“文章”类别分配给一篇文章,我会将此数据与文章一起保存为每篇适用的文章吗?

  2. 这是否意味着如果我想将“新闻”重命名为“最新新闻”,我需要循环浏览所有博客文章及其类别并手动更新“新闻”类别的每个实例?

【问题讨论】:

    标签: mongodb nosql


    【解决方案1】:

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

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

    我倾向于这样做是有一个标签表,并使用一种称为手动引用的技术在屏幕上填充数据。

    简而言之,这意味着拥有一组标签,例如:

    {
        _id : tag1,
        tagName : "news"
    }
    

    然后在你的博客中:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-22
      • 2018-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多