键值存储- DynamoDB模式设计-订单模型



我正在建模一个简单的应用程序,我想使用DynamoDB作为我的存储。我需要从电子商务网站存储所有订单。可以使用order_id和用户邮箱进行查询。

查看dynamodb文档,我认为最好的方法是使用order_id(我的大多数查询将在此索引上进行)作为我的主键(分区键)。

那电子邮件呢?我想要一个二级索引,但是我有点迷路了。最好的方法是什么?

看起来在email属性上添加全局二级索引可以解决这个问题:

  • 当需要按order_id查找时,使用GetItem操作并指定order_id为主键

  • 当您需要通过email查找时,您可以在GSI上使用Query API并指定email作为分区键。

GSI有独立的读容量单元——因为你说你将在大多数时间使用order_id,你可以为主表提供比GSI更多的RCU。

参考:

  • http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html
  • http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html
  • http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html

相关内容

  • 没有找到相关文章

最新更新