Amazon dynamodb Amazon DynamoDB通知系统

Amazon dynamodb Amazon DynamoDB通知系统,amazon-dynamodb,Amazon Dynamodb,我来自强大的关系数据库背景,在理解DynamoDB中的散列、范围和二级索引时遇到困难 我希望为用户存储通知 在SQL中,列将是: 通知ID PK 用户标识FK 消息 日期创建 日期浏览 我需要帮助设置正确的散列键和范围键,以便在以下任务中正常工作 查询或扫描以查找用户名列表的最新通知。此列表将由当前实际登录的用户决定。相当于SQL中1,2,3中的WHERE userID 获取dateViewed='1/1/1900'的通知计数 更新特定通知 获取特定用户的所有通知 感谢您对正确构建此表提供的任何

我来自强大的关系数据库背景,在理解DynamoDB中的散列、范围和二级索引时遇到困难

我希望为用户存储通知

在SQL中,列将是:

通知ID PK 用户标识FK 消息 日期创建 日期浏览 我需要帮助设置正确的散列键和范围键,以便在以下任务中正常工作

查询或扫描以查找用户名列表的最新通知。此列表将由当前实际登录的用户决定。相当于SQL中1,2,3中的WHERE userID 获取dateViewed='1/1/1900'的通知计数 更新特定通知 获取特定用户的所有通知
感谢您对正确构建此表提供的任何帮助

有许多方法可以对此进行建模-您可能需要考虑以下一个选项:

创建一个名为notifications的表,其中包含散列主键notificationId-uuid以及项目中描述的其他字段。 现在,您可以使用updateItemAPI更新基表中的项。请参阅:Java SDK层:

2.使用以下架构在notifications表上创建全局二级索引GSI: -hash userId+range notificationId-这允许您在二级索引上发布查询API获取此用户的所有通知,并且您还可以通过时间戳进行过滤。请参见此处的示例:。 -对于跨userid列表查找最新通知:您可以像DynamoDB一样在不同线程中并行发出多个查询API调用

数据模型上有几种变体,例如创建另一个具有哈希用户ID和范围时间戳的GSI,以便根据给定用户的时间戳对通知进行有效排序

希望这有帮助