【发布时间】:2018-07-30 19:42:13
【问题描述】:
我在 dynamodb 中设计了一个查找表时遇到了一些问题,但没有遇到 GSI 的问题。
我有一个对象 U,这个对象有 4 个(感兴趣的)属性。 Id、A、B 和 C。我有另一个对象 T,它有 2 个(感兴趣的)属性 Id 和一个 U.Id 列表。
我需要创建一个 DynamoDB 表,我可以在其中进行快速查找,例如。
给定 T.Id,给我所有具有 A 的 U 对象,或给定 T.Id,给我所有具有 B 的连接 U 对象。最后给定 U.Id,给我具有 U 的 T.Id。 ID 在它的列表中。
我在想什么
| T.Id | Sort Key | U.Id | U.A | U.B | U.C |
| T1 | U1 | U1 | abc | rew | bgt |
| T1 | U2 | U2 | bgf | red | bcs |
| T2 | U3 | U3 | abc | rew | bgt |
T.Id 是 Primary Key,Sort Key 是 U.Id。 然后是 U.ID、U.A、U.B 和 U.C 上的 GSI。
这种方法现在应该可行,但我仅限于 5 GSI,而且我知道稍后会添加更多 U 属性。 T 在其列表中最多可以有 2000 个 U.Id。
我应该如何进行这种 DynamoDB 设计以实现最快的查找并且不会遇到 GSI 限制问题?
在给定 T.Id、U.A 和 U.B 的情况下获取所有 U.Id 会很好支持,但不是必需的,我可以要求此表的用户执行多个调用的交集。
【问题讨论】:
标签: amazon-dynamodb