Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Raccolte di articoli: come modellare one-to-many le relazioni in DynamoDB
In DynamoDB, una raccolta di elementi è un gruppo di elementi che condividono lo stesso valore della chiave di partizione, il che significa che gli elementi sono correlati. Le raccolte di elementi sono il meccanismo principale per modellare one-to-many le relazioni in DynamoDB. Le raccolte di elementi possono esistere solo su tabelle o indici configurati per l'utilizzo di una chiave primaria composita.
Nota
Le raccolte di elementi possono esistere in una tabella di base o in un indice secondario. Per ulteriori informazioni specifiche su come le raccolte di elementi interagiscono con gli indici, consulta Raccolte di elementi negli indici secondari locali.
Considerare la seguente tabella che mostra tre diversi utenti e i loro inventari all'interno di un gioco:
Per alcuni elementi di ogni raccolta, la chiave di ordinamento è una concatenazione composta da informazioni utilizzate per raggruppare i dati, ad esempio inventory::armor
, inventory::weapon
o info
. Ogni raccolta di elementi può avere come chiave di ordinamento una combinazione diversa di questi attributi. L'utente account1234
ha un elemento inventory::weapons
, mentre l'utente account1387
non ha elementi in quanto non ne ha ancora trovato nessuno. L'utente account1138
utilizza solo due elementi per la chiave di ordinamento (poiché non ha ancora un inventario) mentre gli altri utenti ne usano tre.
DynamoDB consente di recuperare in modo selettivo gli elementi da queste raccolte di elementi per effettuare le seguenti operazioni:
-
Recuperare tutti gli elementi da un determinato utente
-
Recuperare un solo elemento da un determinato utente
-
Recuperare tutti gli elementi di un tipo specifico appartenenti a un determinato utente
Accelerare le query organizzando i dati con le raccolte di elementi
In questo esempio, ciascuno degli elementi di queste tre raccolte di elementi rappresenta un giocatore e il modello di dati che abbiamo scelto, in base ai modelli di accesso del gioco e del giocatore. Di quali dati ha bisogno il gioco? Quando ne ha bisogno? Con quale frequenza ne ha bisogno? Qual è il costo nell'operare in questo modo? Queste decisioni sulla modellazione dei dati sono state prese sulla base delle risposte a queste domande.
In questo gioco, c'è una pagina diversa presentata al giocatore per l'inventario per le armi e un'altra pagina per l'armatura. Quando il giocatore apre il proprio inventario, le armi vengono mostrate per prime perché vogliamo che la pagina venga caricata in modo estremamente veloce, mentre le pagine di inventario successive possono essere caricate in un momento successivo. Poiché ognuno di questi tipi di elementi può essere abbastanza grande in quanto il giocatore acquisisce più oggetti nel gioco, abbiamo deciso che ogni pagina dell'inventario sarebbe stata il proprio elemento nella raccolta di elementi del giocatore nel database.
Nella sezione seguente vengono fornite ulteriori informazioni su come interagire con le raccolte di elementi tramite l'operazione Query
.