Database design DynamoDB:如何为带有标记(描述符)的项设计模式?

Database design DynamoDB:如何为带有标记(描述符)的项设计模式?,database-design,amazon-dynamodb,dynamodb-queries,Database Design,Amazon Dynamodb,Dynamodb Queries,我想设计一个DynamoDB表,例如,一个博客站点,其中每个帖子可能包含零到三个“标记”(类似于在发布之前堆栈溢出可能包含的关键字/标记)。访问模式是使用tag1、tag2和/或tag3获取所有帖子。如果有区别的话,数据接口层是Graphql,通过Appsync,通过Amplify>\u,您可以通过将TAG#TagName作为GSI,将blogid作为sgi的sk来解决。但是,如果您有5个以上的标记,或者您必须通过其他属性访问数据,这将变得很棘手,因为最多支持5个GSI。您可以看看其他支持您的访

我想设计一个DynamoDB表,例如,一个博客站点,其中每个
帖子
可能包含零到三个“标记”(类似于在发布之前堆栈溢出可能包含的关键字/标记)。访问模式是使用
tag1
tag2
和/或
tag3
获取所有
帖子。如果有区别的话,数据接口层是Graphql,通过Appsync,通过Amplify>\u,您可以通过将TAG#TagName作为GSI,将blogid作为sgi的sk来解决。但是,如果您有5个以上的标记,或者您必须通过其他属性访问数据,这将变得很棘手,因为最多支持5个GSI。您可以看看其他支持您的访问模式的nosql实现。实际上,5 GSI限制已不再是一个问题,尽管您不应该在没有仔细考虑的情况下开始创建它们,因为您仍然需要为您创建的所有GSI付费。我不知道它是如何与您的数据访问层一起工作的,但听起来您在tag和post之间有一种多对多的关系,DynamoDB建议将其建模为邻接列表。