对于下一个DynamoDB用例,有什么更好的方法?

时间:2018-04-01 07:07:51

标签: amazon-web-services amazon-dynamodb

想象一下下一个普通情况。我们有两种类型的用户 - 卖家和买家。卖家只能创建和编辑他的优惠。优惠可以分为两种状态 - 有效或无效。 买方只能看到所有卖家的有效报价。 使用DynamoDB完成任务的更好方法是什么? 1)创建两个DynamoDB实例,一个用于活动商品,另一个用于非活动商品。 在这种方法中,两个表的主键都是:

{
  partition: sellerId,
  sort: offerId
}

我看到了原则和缺点:

  • (+)收到卖家自己的报价很简单(按分区查询 键)
  • (+)接收买方的有效报价很简单(无条件扫描相应的表格)
  • (+)如果买家>>我们可以为表设置不同的吞吐量卖家等
  • ( - )更改要约状态相当复杂(删除和放置操作)

2)为商品对象创建一个带有“active”布尔字段的表。 主键是相同的:

{
  partition: sellerId,
  sort: offerId
}

索引可以是:

{
  partition: active,
  sort: offerId
}

(不确定这样的指数能否有效运作) 我明白了:

  • (+)收到卖家自己的报价很简单(按分区查询 键)
  • (+)改变报价状态很简单(放置操作)
  • (+)仅使用一个表
  • ( - )接收买方的有效报价可能很复杂(按条件扫描)或我们需要额外的索引吞吐量。

所以基本上问题是使用带有布尔分区部分的索引是否正常,是否有可能一种方法导致未来扩展问题而另一种方法不存在(也许我没有看到明显的缺点任何方法)

0 个答案:

没有答案