Amazon dynamodb 在DynamoDB中将随机生成的字母数字字符串设置为主分区键和排序键是安全的

Amazon dynamodb 在DynamoDB中将随机生成的字母数字字符串设置为主分区键和排序键是安全的,amazon-dynamodb,database,Amazon Dynamodb,Database,下面是我们计划插入到DynamoDB表中的示例JSON。到目前为止,我们将organizationID作为主分区键,将_id__;作为排序键。因为我们将基于organizationID进行查询,所以我们将其保留为主分区键。将_id____)保留为排序键是一种好方法 { "__class__": "package", "__updated__": "2015-10-19T14:30:13Z", "__created__": "2015-10-19T12:32:28Z", "tran

下面是我们计划插入到DynamoDB表中的示例JSON。到目前为止,我们将organizationID作为主分区键,将_id__;作为排序键。因为我们将基于organizationID进行查询,所以我们将其保留为主分区键。将_id____)保留为排序键是一种好方法

{
  "__class__": "package",
  "__updated__": "2015-10-19T14:30:13Z",
  "__created__": "2015-10-19T12:32:28Z",
  "transactions": [
    {
      transaction1
    },
    {
      transaction2
    }
  ],
  "carrier": "USPS",
  "organizationID": "6406fa6fd32393908125d4d81ec358",
  "barcode": "9400110891302408",
  "queryString": [
    "xxxxxxx",
    "YYYY",
    "delivered",    
  ],
  "deliveredTo": null,
  "__id__": "3232d1a045476786fg22dfg32b82209155b32"
}

根据最佳实践,您可以将时间戳作为上述数据模型的排序键。将时间戳作为排序键的一个优点是,您可以对特定分区键的数据进行排序,并标识最新更新的项。这是具有排序键的非常常见的用例


将分区和排序键都保留为随机生成的值没有多大意义,因为除非我在这里遗漏了什么,否则无法有效地使用排序键

根据您的数据模型,同一个organizationID是否可以有多个项?我只是想了解上述数据模型中对排序键的要求。是的,对于同一个组织,我们将有多个项目。如果我将更新参数作为排序键,那么对于每个组织ID,每天2015-10-19,仅插入一个包数据。如果我将2015-10-19T14:30:13Z转换为时间戳并将其保留为排序键,将解决上述数据插入问题。是的,请使用时间戳作为排序键。仅保留日期部分不足以使项目具有唯一性。