我目前正在构建一个简单的时事通讯应用程序,用户可以通过他们的电子邮件被邀请阅读时事通讯。
我已经设置了当前的示例表:

在
我使用了1个GSI,它使用基表SK作为PK,使用基表PK作为SK --这给了我以下聚合视图:

我的问题是-对于我的用例,“时事通讯电子邮件关系数据”和“时事通讯数据”必须是相同的,这样我就可以在时事通讯列表中显示我的通讯预览,同时在用户单击其中一个列出的通讯并显示时事通讯细节后显示时事通讯本身。
如果没有redundancy?
发布于 2020-05-14 20:15:49
对于任何试图像我一样理解dynamoDB和appsync的人来说。您不需要像我在本例中那样冗余地保存大部分数据。实际上,您可以定义时事通讯与时事通讯应用程序之间的关系,只需从邀请中直接获取时事通讯数据,如下例所示:
type Newsletter {
id: Int!
name: String!
description: String!
}
type NewsletterInvitation {
id: Int!
email: String!
newsletter: Newsletter!
}这应该会给大多数通过这篇文章的人一个答案。
对于任何涉及SK修改的用例,都会变得更加困难。您将需要使用dynamodb数据流、SQS前端以及可能的自定义lambda触发器来侦听特定项的更改、创建SQS事件或触发lambda并手动修改时事通讯邀请排序键。
https://stackoverflow.com/questions/61234132
复制相似问题