在Amazon DynamoDB中创建表项的版本

时间:2015-11-19 13:49:01

标签: node.js amazon-web-services amazon-dynamodb aws-sdk aws-cli

我有一个项目如: " Item":{     " model":32590038899,     " date":10-09-2015,     "价格":100   }

" hash_key_attribute_name":" model"

" range_key_attribute_name":" date"

我的问题是新物品插入了很多,所以有可能会有相同型号的物品来,它们可能不是同一产品。这可能是由于产品可用的地区。所以我需要一个设置我需要保留产品的副本,如果出现这种情况,将来在检查或要求后我可以带回产品。我正在寻找一种版本系统。目前,由于相同的主键,产品将被删除。

2 个答案:

答案 0 :(得分:0)

简单地说:如果您的主键不是唯一的,那么您没有使用正确的字段作为主键。

  

...有可能会出现具有相同型号的物品   可能不是同一产品。这可能是由于产品所在的地区   可用...

听起来您的主键需要是区域和产品ID的组合。或者您可能需要为每个区域单独制作一个表格。

答案 1 :(得分:0)

我会为你的项目添加一个唯一的id属性,一个uuid效果很好,比如

{ id: "53f382ae-94b8-4910-b8f1-384f46dc10d8",
  model: 32590038899, 
  date: "10-09-2015", 
  price:100 
}

将您的表架构更改为只有一个哈希键属性名称 - id

使用散列键添加全局二级索引 - 模型,范围键 - 日期

全局二级索引可以包含主键冲突的项目。使用此架构,您可以防止项被覆盖,并且可以查询具有给定型号的项目。