1

我对 Mongo 很陌生。刚开始一个项目,使用MongoDB作为数据库。我不确定我应该如何将以下用例设计为文档库数据库。

用户案例
1. 供应商/分销商在我们的系统上有一个产品列表。
2. 每个客户都有一个标准的价格表。
3.供应商/分销商还为每个客户定制了每种产品的价格表。
例如。CustA 有一个产品 A,其定价与标准不同,并且仅供他使用。4. 部分商品只能通过customize price 获得,我匹配那些带有public = false 属性的商品。

我应该如何在文档库数据库中解决这个问题?
我目前的设计是。
1.【产品文档】内嵌标准价目表文档。
2. [ Product_Price Document ] 带有 oneToMany 链接 [ Product Document ] 和 oneToMany 到 [ Customer Document ]
3. [ Customer Document ]。

使用此模型,我面临分页查询的问题。
示例我查询按名称排序的前 30 个产品。然后用匹配的 30 个 ProductId 查询 [ Product_Price Document ],这样我就可以为登录的那个客户定制价格。

问题来自我无法查询为用户定制的项目,这些项目并非对所有人都可用。

有没有更好的方法或设计架构或我应该如何处理查询?

我正在使用 PHP、Doctrine2、Symfony2

4

2 回答 2

0

这是我将如何构建它。

有两个系列: - 产品 - 供应商

您的产品表将包含您的所有产品及其标准价格的列表。您的供应商页面将包含一系列产品 ID 以及覆盖价格,以防他们对该特定产品有不同的价格。

如果您还跟踪客户,那么您也可以将其设为一个集合,并且几乎与供应商具有归属关系。

简而言之:

collection.vendor:
 {"name":'foo',"products":[{"_id":mongoId,"priceOveride":15.50},..]}

collection.products:
 {"name":"bar","price":15.40}

深入了解您可以使用的关系的优秀资源:以 交互方式学习 Mongo

于 2011-09-16T13:54:53.647 回答
0

当您查询Product_Price_Document时,使用 ProductID 和当前 CustomerID 查询它。还是我错过了什么?

于 2011-09-16T09:36:52.997 回答