电商网站的mongodb设计

电商网站的mongodb设计

唯一的url蛞蝓:这种字段通常是唯一索引,以加速查询和确保唯一。它提供了毅个有意义的url结构,利于seo。通常https://xxxx.com/products/5d0332be5d530000c4002a03的url显得无意义,有意义的像:https://xxxx.com/products/wheelbarrow - 9092

所以可以对它创建唯一索引:

暗缟掏镜膍ongodb设计"


暗缟掏镜膍ongodb设计"

要在商品目录里查询所有的列别,可以用美元在操作符:

db.categories。找到({" _id ":{“美元”:产品(“category_id添加”)}})


电商网站的mongodb设计

电商网站的mongodb设计

db.orders。找到({user_id:用户(“user_id”)})

查询特定订单的用户:

db.users。findOne ({" _id ":订单(“user_id”)})


电商网站的mongodb设计

电商网站的mongodb设计


每个商品可以有多个评价,可以通过评论里存储product_id来实现一对多关系

电商网站的mongodb设计

为啥要存储用户名?如果是sql,会用用户名来关联用户表。但mongodb不支持加入,我们可以使用两种方法:根据用户集合的每个评论进行查询或接受去范式。然而,根据每个评价进行查询没有必要,这指挥增加不必要的成本,尤其当用户名经常修改的时候,所以这里选择优化查询而不是去范式化。

值得一提的是:对用户来说可以选择支持某个评价,这里在每个评价里保存评论用户的id,这样可以组织用户多次投票,而且可以帮助我们查询所有投票的用户。

缓存了所有的投票数到helpful_votes,这可以让我们基于投票对于有帮助的评论进行排序。缓存非常有用,因为mongodb不允许我们查询文档里的数组大小。







电商网站的mongodb设计