【发布时间】:2020-02-12 12:13:20
【问题描述】:
我正在尝试构建自己的社交网络/论坛应用程序,人们可以在其中添加和喜欢彼此的帖子。我使用 DynamoDB 作为带有单个表的数据库。对于帖子点赞功能,我将 Lambda 函数 与 DynamoDB-Streams 结合使用,后者聚合了 like 属性。
目前我正在研究这些用户帖子的排名机制。有了这个,我想确保我的用户可以在那个时间点在论坛中列出有趣的帖子。
为此,我阅读了 reddit 如何在 page 上处理其排名算法。
我还 @ 987654322@ Stackoverflow 上的问题靠近我,没有一个好的答案 imo。
我的问题是,如何在 AWS 生态系统的帮助下解决这个问题(甚至可能仅使用 DynamoDB 和 Lambda 函数? )
编辑:
我的数据库架构如下所示:
Partitionkey Sortkey likes ...
---------- -------- ------
forum#soccer 01.08.19 13:15
forum#baseball 22.08.19 20:11
post#soccer#Do you think FC Barcelona wins? 05.08.19 10:20 203
post#soccer#Which club is your favorite ? 05.08.19 10:20 2
like#Which club is your favorite ? John Wick
like#Which club is your favorite ? Walter White
...
每次插入以 like# 开头的项目时,都会触发一个 lambda 函数并更新 like 列上的帖子条目。
我的目标是查询当前最时尚的帖子。这应该可以通过可用的信息(如创建时间和帖子的数量)来实现。目前我的查询只是返回最新的帖子
【问题讨论】:
-
您的实际问题是什么,我如何组织我的 DDB 表以便我可以查询它以获得最多喜欢的帖子?如果是这样,请描述您当前的桌子设计。
-
你的表结构会很有帮助,从描述中很难理解。
-
@dmigo 我编辑了我的问题。现在清楚了吗?感谢您的帮助
-
@AshamanKingpin 我编辑了我的问题:)
-
您希望查询返回什么?按点赞数排序的帖子列表?帖子列表会一直存在吗?最后一小时?最后一天?
标签: amazon-web-services amazon-ec2 aws-lambda amazon-dynamodb