在带有哈希和范围/排序键的DynamoDB中创建复合键时,将创意字符串值存储在排序键中(例如“ Details-123456-foo”,其中该值中的每个段可以对于该记录有意义的东西)。在设计架构时,文档似乎也朝着这个方向导航。
也就是说,将排序键命名为通用名称(例如“ sortKey”或“ rangeKey”)而不是特定的名称(例如“ createTimestamp”)是否有意义,以使您能够灵活地为同一名称存储各种数据哈希键,从而在将“查询” API与哈希/排序键一起使用时保持快速的数据访问?
答案 0 :(得分:2)
是的,DynamoDB的最佳做法是将通用名称用作主键和排序键。
按预期使用DynamoDB时,会将不同类型的项目存储在单个表中。主键和排序键的项类型特定键名不起作用。使用GSI overloading时也是如此。
让我们以博客的用例为例,其中您有要存储在同一DynamoDB表中的帖子和评论。在这种情况下,每个帖子和评论都有一个唯一的ID。无需命名主键“ post_id”,而是将其通用地命名(例如,仅“ id”),并通过将其类型放在值(“ post_1”,“ post_2”,“ comment_1”,...)之前来存储帖子和评论。 )。排序键同样适用,因为您可能希望根据键类型按照不同的条件进行排序。