Jak używać dynamodb: LeadingKeys, gdy klucz partycji ma więcej niż jeden rodzaj wartości

Dec 25 2020

Moje tabele Dynamo mają tenant_id jako klucz partycji w mojej aplikacji wielodostępnej, ale mój klucz partycji zawiera również inne typy jednostek oprócz tenant_id.

Na przykład: (To jest mały przykład, używamy tego wzorca w całym tekście)

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

Chciałbym użyć, dynamodb:LeadingKeysaby zapewnić, że dane jednego dzierżawcy nigdy nie będą dostępne dla innego dzierżawcy. Jak mogę się do tego zabrać w tym przypadku, gdy PKjest przeciążony i ma w sobie również inne jednostki.

Odpowiedzi

1 Maurice Dec 28 2020 at 17:41

W systemie z wieloma dzierżawcami zalecam dodanie identyfikatora dzierżawy jako prefiksu do klucza partycji wszystkich elementów należących do dzierżawcy. W ten sposób możesz użyć dynamodb:LeadingKeyswarunku do kontroli dostępu.

I tak tenant-id powinien być znany w czasie zapytania dla każdego zapytania, przypuszczam, że prawdopodobnie jest przechowywany w informacji o sesji. Oznacza to, że możesz dodać identyfikator dzierżawy do każdego klucza i nadal przeciążać klucz partycji.