首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该选择哪一个,文档模型还是关系模型?

我应该选择哪一个,文档模型还是关系模型?
EN

Stack Overflow用户
提问于 2021-07-02 08:42:10
回答 1查看 26关注 0票数 0

在我的应用程序中,我选择了文档模型,但我仍然有一些问题。

下面是我的示例文档:

代码语言:javascript
复制
{
  "catalogs": {
    "cat-id1": {
      "name": "catalog-1",
      "createdAt": 123,
      "products": {
        "pro-id1": {
          "name": "product-1",
          "createdAt": 321,
          "ingredients": {}
        },
        "pro-id2": {
          "name": "product-2",
          "createdAt": 654,
          "ingredients": {}
        }
      }
    },
    "cat-id2": {
      "name": "catalog-2",
      "createdAt": 456,
      "products": {
        "pro-id3": {
          "name": "product-3",
          "createdAt": 322,
          "ingredients": {}
        },
        "pro-id4": {
          "name": "product-4",
          "createdAt": 655,
          "ingredients": {}
        }
      }
    }
  }
}

但是产品中的成分更多的是参考另一份文件。

代码语言:javascript
复制
{
  "ingredients": {
    "ing-id1": {},
    "ing-id2": {}
  }
}

文档模型有几个优点:

if (user.first_name) user.first_name = user.name.split(' ')[0]

  • No需要join一样,
  • 易于编辑模式,很容易一次接收所有数据。

我也知道:

对一个文档的更新,整个文档通常需要重写。出于这些原因,通常建议您保持文档相当小,并且避免写入会增加文档大小的内容。主要思想是:哪个数据模型导致了更简单的应用程序代码?

我的问题是:

  1. 我应该保留多大的文档?
  2. 我的应用程序已经有了关系数据库,我应该把文档模型合并到关系数据库以降低复杂性吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-02 09:18:23

由于您已经使用了一个关系数据库,所以我也看不到使用基于文档的DB的真正好处。

您的数据库模式看起来很简单,可以使用关系数据库。如果目录条目彼此之间有很大不同,您可以考虑基于文档的模型。但情况似乎并非如此。

因此,我的建议是,您应该坚持使用关系模型。

我会像这样设计模型:

每个实体( relationship.,productingredient)的表,其中每个条目都有一个唯一的Id

  • --每个n:m关系(catalogProductproductIngredient)的关联表,这些关系表只包含

  • 实体的Id

举个例子:

ingredient.

  • The products prod1prod2存储在product.

  • ing1中,ing2用于prod1

  • ing2ing3用于prod2

  • In productIngredient在每个条目中存储一个成分的ID和它所使用的产品的ID。
  • prod1ing1
  • prod1ing2
  • prod2ing2
  • prod2ing3
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68222160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档