在我的应用程序中,我选择了文档模型,但我仍然有一些问题。
下面是我的示例文档:
{
"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": {}
}
}
}
}
}但是产品中的成分更多的是参考另一份文件。
{
"ingredients": {
"ing-id1": {},
"ing-id2": {}
}
}文档模型有几个优点:
像if (user.first_name) user.first_name = user.name.split(' ')[0]
join一样,我也知道:
对一个文档的更新,整个文档通常需要重写。出于这些原因,通常建议您保持文档相当小,并且避免写入会增加文档大小的内容。主要思想是:哪个数据模型导致了更简单的应用程序代码?
我的问题是:
发布于 2021-07-02 09:18:23
由于您已经使用了一个关系数据库,所以我也看不到使用基于文档的DB的真正好处。
您的数据库模式看起来很简单,可以使用关系数据库。如果目录条目彼此之间有很大不同,您可以考虑基于文档的模型。但情况似乎并非如此。
因此,我的建议是,您应该坚持使用关系模型。
我会像这样设计模型:
每个实体( relationship.,product,ingredient)的表,其中每个条目都有一个唯一的Id
n:m关系(catalogProduct,productIngredient)的关联表,这些关系表只包含
举个例子:
ingredient.
prod1和prod2存储在product.
ing1中,ing2用于prod1
ing2,ing3用于prod2
productIngredient在每个条目中存储一个成分的ID和它所使用的产品的ID。prod1:ing1prod1:ing2prod2:ing2prod2:ing3https://stackoverflow.com/questions/68222160
复制相似问题