当使用散列和范围/排序键在DynamoDB中创建复合键时,将创造性字符串值存储在排序键中似乎非常有用。“Details-123456-foo”,其中该值中的每个段对该记录都有意义)。在设计模式时,文档似乎也向这个方向导航。
尽管如此,将排序键命名为泛型(比如“sortKey”或“rangeKey”)而不是特定的东西(例如“createTimestamp”)是否有意义,以便为同一个哈希键存储各种数据,从而在使用带有散列/排序键的“查询”API时保持快速的数据访问?
发布于 2019-11-16 23:51:47
是的,对DynamoDB来说,对主键和排序键使用泛型名称是一个最佳实践。
当您按需要使用DynamoDB时,可以将不同类型的项存储在单个表中。主键和排序键的项类型特定的键名不适用于此。当您使用GSI超载时,情况也是如此。
让我们以一个博客的用例为例,在这个例子中,您要在同一个DynamoDB表中存储文章和评论。在这种情况下,您将对每个帖子和评论都有某种独特的标识。您不会将主键命名为"post_id“(例如"id"),而是将它们的类型放在值的前面("post_1”、"post_2“、"comment_1”、.)来存储它们。排序键也是如此,因为根据不同的键类型,您可能需要根据不同的标准进行排序。
https://stackoverflow.com/questions/58897668
复制相似问题