Partition key有多种值时如何使用dynamodb:LeadingKeys

How to use dynamodb:LeadingKeys when Partition key has more than one kind of values

我的 Dynamo 表在我的多租户应用程序中将 tenant_id 作为分区键,但我的分区键除了 tenant_id 之外还有其他类型的实体。

例如:(这是一个小例子,我们一直在使用这个模式)

PK                                        SK                               Att
Customer-4312a674-54a                  user-abc                            672453782
user-abc                                   user-abc                            672453782

我想使用 dynamodb:LeadingKeys 来确保一个租户的数据永远不会被另一个租户访问。在这种情况下,当 PK 超载并且其中还有其他实体时,我该如何处理。

在多租户系统中,我的建议是将租户 ID 作为前缀添加到属于该租户的 所有 项目的分区键。这样您就可以使用 dynamodb:LeadingKeys 条件进行访问控制。

租户 ID 应该在每次查询的查询时都知道,我猜它可能存储在会话信息中。这意味着您可以将租户 ID 添加到每个键,并且仍然进行分区键重载。