我正在制作一个需要有 2 张表的数据库的游戏。必须通过 api 端点访问数据库。表 1 是用户名和密码。表 2 是用户名和分数。我需要以下方法:
- 在表 1 中创建新用户和密码(必须是唯一的(。
- 创建或更新分数(如果表 2 中存在(。
- 获取特定的用户名、分数和排名。
- 获取前 10 名分数和用户名。
- 从传入的用户名列表中获取任意数量的用户名和分数。
我试图使用 DynamoDB 和 Lambda 函数来做到这一点,但它似乎没有这种灵活性来获得我想要的东西。我将不得不扫描整个名称表,然后找到前 10 名,这是很多处理。还有其他建议吗?
我不确定会有多少用户,但假设会有很多。成本是一个因素,因此最便宜的解决方案是最好的。
对于身份验证:Amazon Cognito
对于存储:Amazon DynamoDB
将分数填充到两个表中。
表 1:按用户和游戏
- 分区键:用户 ID + 游戏 ID
- 排序键:游戏 #(对所玩游戏实例的唯一引用(
检索为特定用户玩的游戏时使用此表。
表2:按游戏和得分
- 分区键:游戏 ID
- 排序键:分数
给定游戏的高分时使用此表(按分数降序排序(。