gpt4 book ai didi

mongodb - mongodb中如何设计产品类别和产品模型?

转载 作者:行者123 更新时间:2023-12-04 12:26:23 25 4
gpt4 key购买 nike

我是 mongo db 数据库设计的新手,
我目前正在设计一个餐厅产品系统,我的设计类似于一个简单的电子商务数据库设计,其中每个产品类别都有产品,因此在关系数据库系统中这将是一个(产品类别)到许多产品。
我做了一些研究,我确实在文档数据库中理解了这一点。
去国家化是可以接受的,它会导致更快的数据库读取。
因此在基于 nosql 文档的数据库中,我可以这样设计我的模型

    //product
{
name:'xxxx',
price:xxxxx,
productcategory:
{
productcategoryName:'xxxxx'

}
}

我的问题是这样的,而不是将类别嵌入到每个产品中,为什么我们不将产品嵌入产品类别中,那么一旦我们查询了类别,我们就可以拥有所有产品,从而产生这个模型。
    //ProductCategory
{
name:'categoryName',
//array or products
products:[
{
name:'xxxx',
price:xxxxx
},
{
name:'xxxx',
price:xxxxx
}
]
}

我在这个页面上研究过这个问题 http://www.slideshare.net/VishwasBhagath/product-catalog-using-mongodb在这里 http://www.stackoverflow.com/questions/20090643/product-category-management-in-mongodb-and-mysql 我发现的两个例子都使用了我描述的第一个模型(即它们将 productCategory 嵌入到产品中而不是在 productCategory 中嵌入一系列产品),我不明白为什么,请解释。谢谢

最佳答案

这完全取决于您想到的查询。

假设一个产品只能属于一个类别,一个类别适用于多个产品。然后,如果您希望与产品一起检索类别,则直接存储它是有意义的:

 // products
{_id:"aabbcc", name:"foo", category:"bar"}

如果您希望查询给定类别中的所有产品,那么创建一个单独的集合是有意义的
// categories
{_id:"bar", products=["aabbcc"]}

请记住,您不能同时更新 productscategories数据库(MongoDB 最终是一致的),但您有时可以运行批处理作业,以确保所有类别都是最新的。

我建议考虑我经常需要什么样的信息,而不是如何规范化/非规范化这些数据,并使你的集合反射(reflect)你真正想要的。

关于mongodb - mongodb中如何设计产品类别和产品模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com