【发布时间】:2016-04-25 23:44:20
【问题描述】:
从 RDBMS 迁移,我不确定如何最好地设计以下场景
我有一个包含大约 200,000 个问题的表格,其中问题 ID 作为分区键。
用户查看问题,我不希望再次向用户显示查看的问题。那么哪一个是更好的选择呢?
- 有一个表,其中问题 ID 作为分区键,一组用户 ID 作为属性
- 有一个表,其中用户 ID 作为分区键,一组问题 ID 被他们视为属性
- 有一个表,其中问题 ID 作为分区键,用户 ID 作为排序键。用户查看问题后,将行添加到此表
1 和 2 可能对项目的 400 kb 大小限制有问题。第三个似乎更好的选择虽然我最终会得到 1 亿个项目,因为每个用户查看的每个问题都会有一行。但我认为这对发电机来说不是问题?
另一个问题是如何获得 10 个用户未查看的随机问题。我是否会生成 10 个介于 1 到 200,000(问题数)之间的随机数,然后检查是否不在上面第 3 点提到的表格中?
【问题讨论】:
标签: amazon-web-services database-design amazon-dynamodb