由 DynamoDB 标准属性名称和值格式中的多个值组成的分区键?
Partition key consisting of multiple values in DynamoDB standard attribute name and value formatting?
我正在创建一个 DDB table,它有多个值组成它的分区键和排序键。主键是分区键和排序键的组合。
分区键类似于区域+日期+位置,排序键类似于区域+更新时间戳毫秒。
这些属性的命名规范是什么?它只是命名 region+date+location
之类的值吗?或者其他类型的划界?我还读到过,将其命名为 partitionKey
和 rangeKey
或 <typeofthing>id
之类的东西可能会更好。但是我对此有些反对团队认为名称在那种情况下没有帮助。
我似乎无法在任何地方找到针对这个特定问题的最佳实践?是否有我可以指出的某处写下的首选方法?
没有命名属性的“标准”方式。但是有两件事需要考虑 反对 强制使用 region+date+location
:
这样的命名标准
很长的属性名称是浪费 - 您需要在写入和读取项目时通过网络发送它,并且它包含在您为每次操作和存储支付的项目长度中。我并不是说这意味着你应该将你的属性命名为“a”和“b”,但也不要在另一个方向上走得太远。
一个属性名region+date+location
表示这个属性只包含这个组合,并且永远只包含这个组合。但在 DynamoDB 中,相同的属性名称经常被重复用于多种不同的类型——这种重复使用是“单一 table 设计”的标志。也就是说,这些反例与您的用例不太相关,因为以这种方式重载的属性通常不是 key 列,因为在您的用例中。
对于你的情况,我认为无论你决定什么都可以。没有令人信服的理由远离您提到的选项之一。
我正在创建一个 DDB table,它有多个值组成它的分区键和排序键。主键是分区键和排序键的组合。
分区键类似于区域+日期+位置,排序键类似于区域+更新时间戳毫秒。
这些属性的命名规范是什么?它只是命名 region+date+location
之类的值吗?或者其他类型的划界?我还读到过,将其命名为 partitionKey
和 rangeKey
或 <typeofthing>id
之类的东西可能会更好。但是我对此有些反对团队认为名称在那种情况下没有帮助。
我似乎无法在任何地方找到针对这个特定问题的最佳实践?是否有我可以指出的某处写下的首选方法?
没有命名属性的“标准”方式。但是有两件事需要考虑 反对 强制使用 region+date+location
:
很长的属性名称是浪费 - 您需要在写入和读取项目时通过网络发送它,并且它包含在您为每次操作和存储支付的项目长度中。我并不是说这意味着你应该将你的属性命名为“a”和“b”,但也不要在另一个方向上走得太远。
一个属性名
region+date+location
表示这个属性只包含这个组合,并且永远只包含这个组合。但在 DynamoDB 中,相同的属性名称经常被重复用于多种不同的类型——这种重复使用是“单一 table 设计”的标志。也就是说,这些反例与您的用例不太相关,因为以这种方式重载的属性通常不是 key 列,因为在您的用例中。
对于你的情况,我认为无论你决定什么都可以。没有令人信服的理由远离您提到的选项之一。