需要有关 DynamoDb 表架构的一些建议

维克

我正在建立一个评论网站。它将审查酒店、餐馆和咖啡馆(我们称之为列表),因此列表将分为三类。这些列表中的每一个都会有评论。

现在最终用户将能够喜欢/不喜欢列表或个人评论。我正在使用 AWS Amplify 来构建此站点。

前端查询数据的方式如下。

  1. 搜索框可能想查看给定位置的餐馆,例如悉尼/伦敦等。
  2. 当餐厅列表出现时,最终用户可以点击每家餐厅来查看对这家餐厅的评论。
  3. 最终用户可以喜欢/不喜欢餐厅或对个人评论做同样的喜欢/不喜欢。

我是 NoSQL 数据库概念的新手,所以需要一些关于如何构建它的建议。下图显示了我的想法。

在此处输入图片说明

阿迪亚

NoSQL 模式建模应基于数据的访问模式执行。根据您提供的访问模式

  1. 可以在列表二级分区中搜索给定位置的餐厅,除此之外,您还可以使用列表评级对它们进行排序。
  2. 对于每家餐厅,您都可以获得与之相关的评论。您是否将原始评论 blob 存储在这里?如果是这样,请注意最大行大小并考虑压缩评论或使用 S3 存储原始评论。
  3. 增加 Review_Likes 和 Dislikes 的列将解决您的用例 3。

但是,要完全验证您的架构,我需要以下信息。在列表表中,主分区键 - 类别值非常小(酒店、咖啡馆、餐厅等),这可能会导致热分区。DynamoDB 期望主键均匀分布以获得最佳性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章