Amazon web services AWS Dynamo DB:如何在没有GSI的情况下进行有效设计

Amazon web services AWS Dynamo DB:如何在没有GSI的情况下进行有效设计,amazon-web-services,database-design,amazon-dynamodb,dynamodb-queries,Amazon Web Services,Database Design,Amazon Dynamodb,Dynamodb Queries,我正在按要求设计DynamoDB 按用户列出所有票据 按票证类型列出所有票证 我的设计专栏 p_键 s_键 车票类型 细节 创建日期 当LSI的分区键与表的分区键匹配时,可以使用本地二级索引LSI 专业人士 没有额外费用 缺点 LSI必须在表被定义时定义,不能在事实之后添加。 如果表中定义了LSI,则给定分区键的数据限制为10GB。 每个表只允许5个LSI 当LSI的分区键与表的分区键匹配时,可以使用本地二级索引LSI 专业人士 没有额外费用 缺点 LSI必须在表被定义时定义,不能在事实之后添加

我正在按要求设计DynamoDB

按用户列出所有票据 按票证类型列出所有票证 我的设计专栏

p_键 s_键 车票类型 细节 创建日期
当LSI的分区键与表的分区键匹配时,可以使用本地二级索引LSI

专业人士

没有额外费用 缺点

LSI必须在表被定义时定义,不能在事实之后添加。 如果表中定义了LSI,则给定分区键的数据限制为10GB。 每个表只允许5个LSI
当LSI的分区键与表的分区键匹配时,可以使用本地二级索引LSI

专业人士

没有额外费用 缺点

LSI必须在表被定义时定义,不能在事实之后添加。 如果表中定义了LSI,则给定分区键的数据限制为10GB。 每个表只允许5个LSI
您可以通过在数据库中引入复制来做到这一点-对于每个项目:

p_keyEVENT${eventId},s_key{user_id}{ticket type},ticket_type,详细信息,创建日期

插入另一个分区键相同但排序键已更改的分区键:

p_keyEVENT${eventId},s_key{ticket\u type}{user\u id},user\u id,详细信息,创建日期

这样,您就可以在没有另一个GSI的情况下支持这两个查询。
这样做的缺点是修改任何项都需要2次写入。如果你愿意的话,我会给你更多。这取决于您的应用程序是重写还是重读。

您可以通过在数据库中引入复制来做到这一点-对于每个项目:

p_keyEVENT${eventId},s_key{user_id}{ticket type},ticket_type,详细信息,创建日期

插入另一个分区键相同但排序键已更改的分区键:

p_keyEVENT${eventId},s_key{ticket\u type}{user\u id},user\u id,详细信息,创建日期

这样,您就可以在没有另一个GSI的情况下支持这两个查询。
这样做的缺点是修改任何项都需要2次写入。如果你愿意的话,我会给你更多。这取决于您的应用程序是重写还是重读。

非常有趣。谢谢。我会看的很有趣。谢谢。我来看看