需要一些关于 DynamoDb 表架构的建议
Need some advice on DynamoDb Tables schema
我正在建立一个评论网站。
它将审查酒店、餐馆和咖啡馆(我们称之为列表),
所以将有三类列表。
这些列表中的每一个都会有评论。
现在最终用户将能够喜欢/不喜欢列表或个人评论。
我正在使用 AWS Amplify 构建此站点。
前端查询数据的方式如下。
- 搜索框可能希望查看指定位置的餐馆,例如悉尼/伦敦等。
- 出现餐厅列表后,最终用户可以单击每家餐厅以查看对该餐厅的评论。
- 最终用户可以喜欢/不喜欢餐厅或对个人评论做同样的喜欢/不喜欢。
我是 NoSQL 数据库概念的新手,因此需要一些关于如何构建它的建议。下图显示了我的想法。
NoSQL 模式建模应根据数据的访问模式进行。根据您提供的访问模式
- 可以在列表中搜索给定位置的餐馆
辅助分区,除此之外,您还可以对它们进行排序
使用列表评级。
- 对于每家餐厅,您可以获得
与之相关的评论。您是否存储原始评论
斑点在这里?如果是这样,请注意最大行大小和
考虑压缩评论或使用 S3 存储原件
评论。
- 增加 Review_Likes 和不喜欢的列
将解决您的用例 3.
但是,为了完全验证您的模式,我需要以下信息。在清单 table 中,主分区键 - 类别值的数量非常少(酒店、咖啡馆、餐厅等),这可能会导致热分区。 DynamoDB 期望主键 uniformly distributed 以获得最佳性能。
我正在建立一个评论网站。 它将审查酒店、餐馆和咖啡馆(我们称之为列表), 所以将有三类列表。 这些列表中的每一个都会有评论。
现在最终用户将能够喜欢/不喜欢列表或个人评论。 我正在使用 AWS Amplify 构建此站点。
前端查询数据的方式如下。
- 搜索框可能希望查看指定位置的餐馆,例如悉尼/伦敦等。
- 出现餐厅列表后,最终用户可以单击每家餐厅以查看对该餐厅的评论。
- 最终用户可以喜欢/不喜欢餐厅或对个人评论做同样的喜欢/不喜欢。
我是 NoSQL 数据库概念的新手,因此需要一些关于如何构建它的建议。下图显示了我的想法。
NoSQL 模式建模应根据数据的访问模式进行。根据您提供的访问模式
- 可以在列表中搜索给定位置的餐馆 辅助分区,除此之外,您还可以对它们进行排序 使用列表评级。
- 对于每家餐厅,您可以获得 与之相关的评论。您是否存储原始评论 斑点在这里?如果是这样,请注意最大行大小和 考虑压缩评论或使用 S3 存储原件 评论。
- 增加 Review_Likes 和不喜欢的列 将解决您的用例 3.
但是,为了完全验证您的模式,我需要以下信息。在清单 table 中,主分区键 - 类别值的数量非常少(酒店、咖啡馆、餐厅等),这可能会导致热分区。 DynamoDB 期望主键 uniformly distributed 以获得最佳性能。