优化读取或插入

时间:2015-12-18 07:48:54

标签: mongodb database-design database

我们公司拥有数百万商人和数十亿产品的mongodb系列。

商家可以选择隐藏,之后公众无法看到他们的产品。

我想知道实现这个的最佳方法:

  1. 我可以更新用户的所有产品以获得隐藏状态。
  2. 我可以更新商家以获得隐藏状态,并阅读每个产品请求的商家状态,以了解是否显示。
  3. 如果您遇到这种困境,或者您建议采用最佳工程方法,您的经历是什么。

2 个答案:

答案 0 :(得分:0)

由于商家是隐藏的而不是个别商品,因此您应该将商家信息置于商家手中。

你问题中的选项2。

如果您还没有实施隐藏的'在您的数据库中,将其作为NULLable添加到您的表中,默认值为FALSE。然后,在查询中查找可见商家的产品,您只需添加where NOT merchant.hidden OR merchant.hidden IS NULL即可。这样,当您将其添加到数据库时,您不需要为数百万非隐藏的其他商家更新它。

答案 1 :(得分:0)

Mongo设计通常取决于您将如何访问数据。

如果您选择商家,那么他们的产品会将隐藏字段放入商家。

如果您选择一个独立于商家的子产品组,您将需要在产品表中使用它。