

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Schritt 5: Erstellen Sie ein DynamoDB-Datenmodell
<a name="step5-hierarchical-model"></a>

Definieren Sie die Partitionsschlüssel für Ihre Basistabelle und die globalen Sekundärindizes ()GSIs:
+ Verwenden Sie `ComponentId` in diesem Beispiel den Partitionsschlüssel für die Basistabelle entsprechend den wichtigsten bewährten Entwurfsmethoden. Weil es einzigartig ist und Granularität bieten `ComponentId` kann. DynamoDB verwendet den Hashwert Ihres Partitionsschlüssels, um die Partition zu ermitteln, auf der die Daten physisch gespeichert sind. Die eindeutige Komponenten-ID generiert einen anderen Hashwert, der die Verteilung der Daten innerhalb der Tabelle erleichtern kann. Sie können die Basistabelle mithilfe eines `ComponentId` Partitionsschlüssels abfragen.
+ Um unmittelbar untergeordnete Elemente einer Komponente zu finden, erstellen Sie eine globale Strukturdatei, wobei `ParentId` der Partitionsschlüssel und der Sortierschlüssel `ComponentId` sind. Sie können diesen globalen Index abfragen, indem Sie ihn `ParentId` als Partitionsschlüssel verwenden.
+ Um alle rekursiven einer Komponente zu finden, erstellen Sie eine GSI, wobei `GraphId` der Partitionsschlüssel ist und `Path` der Sortierschlüssel ist. Sie können diesen GSI abfragen, indem Sie `GraphId` als Partitionsschlüssel und den `BEGINS_WITH(Path, "$path")`-Operator auf dem Sortierschlüssel verwenden.


|  |  |  |  | 
| --- |--- |--- |--- |
|  | **Partitionsschlüssel** | **Schlüssel sortieren** | **Zuordnungsattribute** | 
| **Basistabelle** | `ComponentId` |  | `ParentId`, `GraphId`, `Path` | 
| **GSI1** | `ParentId` | `ComponentId` |  | 
| **GSI2** | `GraphId` | `Path` | `ComponentId` | 

## Speichern von Komponenten in der Tabelle
<a name="store"></a>

Der nächste Schritt besteht darin, jede Komponente in der DynamoDB-Basistabelle zu speichern. Nachdem Sie alle Komponenten aus dem Beispielbaum eingefügt haben, erhalten Sie die folgende Basistabelle.


|  |  |  |  | 
| --- |--- |--- |--- |
| **ComponentId** | **ParentId** | **GraphId** | **Pfad** | 
|  <br />CM1 |  |  <br />CM1\#1 |  <br />CM1 | 
|  <br />CM2 |  <br />CM1 |  <br />CM1\#1 |  <br />CM1\|CM2 | 
|  <br />CM3 |  <br />CM1 |  <br />CM1\#1 |  <br />CM1\|CM3 | 
|  <br />CM4 |  <br />CM2 |  <br />CM1\#1 |  <br />CM1\|CM2\|CM4 | 
|  <br />CM5 |  <br />CM2 |  <br />CM1\#1 |  <br />CM1\|CM2\|CM5 | 
|  <br />CM6 |  <br />CM3 |  <br />CM1\#1 |  <br />CM1\|CM3\|CM6 | 
|  <br />CM7 |  <br />CM3 |  <br />CM1\#1 |  <br />CM1\|CM3\|CM7 | 
|  <br />CM8 |  <br />CM4 |  <br />CM1\#1 |  <br />CM1\|CM2\|CM4\|CM8 | 
|  <br />CM9 |  <br />CM4 |  <br />CM1\#1 |  <br />CM1\|CM2\|CM4\|CM9 | 
|  <br />CM10 |  <br />CM5 |  <br />CM1\#1 |  <br />CM1\|CM2\|CM5\|CM10 | 

## Der GSI1 Index
<a name="gsi1-index"></a>

Um alle unmittelbar untergeordneten Elemente einer Komponente zu überprüfen, erstellen Sie einen Index, der `ParentId` als Partitionsschlüssel und `ComponentId` als Sortierschlüssel verwendet wird. Die folgende Pivot-Tabelle stellt den GSI1 Index dar. Sie können diesen Index verwenden, um alle unmittelbar untergeordneten Komponenten mithilfe einer übergeordneten Komponenten-ID abzurufen. Sie können beispielsweise herausfinden, wie viele Batterien in einem Auto verfügbar sind (CM1) oder welche Zellen in einem Modul verfügbar sind (CM4).


|  |  | 
| --- |--- |
| **ParentId** | **ComponentId** | 
| CM1 | CM2<br />CM3 | 
| CM2 | CM4<br />CM5 | 
| CM3 | CM6<br />CM7 | 
| CM4 | CM8<br />CM9 | 
| CM5 | CM10 | 

## Der GSI2 Index
<a name="gsi2-index"></a>

Die folgende Pivot-Tabelle stellt den GSI2 Index dar. Sie ist mit `GraphId` als Partitionsschlüssel und `Path` als Sortierschlüssel konfiguriert. Mithilfe von `GraphI` d und der `begins_with` Operation mit dem Sortierschlüssel (`Path`) können Sie die vollständige Herkunft einer Komponente in einem Baum ermitteln.


|  |  |  | 
| --- |--- |--- |
| **GraphId** | **Pfad** | **ComponentId** | 
| CM1\#1 | CM1<br />CM1\|CM2<br />CM1\|CM3<br />CM1\|CM2\|CM4<br />CM1\|CM2\|CM5<br />CM1\|CM2\|CM4\|CM8<br />CM1\|CM2\|CM4\|CM9<br />CM1\|CM2\|CM5\|CM10<br />CM1\|CM3\|CM6<br />CM1\|CM3\|CM7 | CM1<br />CM2<br />CM3<br />CM4<br />CM5<br />CM8<br />CM9<br />CM10<br />CM6<br />CM7 | 