【发布时间】:2022-01-09 11:01:35
【问题描述】:
我正在尝试统计房间内的人数。目前,人们可以加入和离开房间(多对多)的关系。我目前正在通过 GSI 的双向roomId <-> userId PK/SK 交换对此进行建模。所以我可以查出谁在房间里,以及用户在哪个房间里。
但是,我还想知道按人口计算的前 N 个房间。为此,我可以在用户进入时增加每个房间的计数,并在他们离开时减少(比如在另一个表中),但随后我必须进行额外的写入。我觉得保持同步也可能存在问题,也许 DynamoDB 流可以处理同步问题。
想到更好的方法?
例如
| PK | SK |
|---|---|
| user1 | room1 |
| user1 | room2 |
| user2 | room2 |
| user3 | room2 |
topRooms(n) = {room1: 1, room2: 3}
【问题讨论】:
标签: database-design nosql amazon-dynamodb amazon-dynamodb-streams