2017-02-24 2 views
1

Ich habe eine Tabelle Benutzer und eine Tabelle Anforderungen. Viele Anfragen für einen Benutzer. Ich möchte eine Liste von Anfragen in der Benutzertabelle haben. Aber ich bin mir nicht sicher, wie ich den Wolkenbildungsruf schreiben soll, um ihn zu bauen. Zur Zeit habe ich nur eine flache Reihe von Attributen:Ich brauche eine Liste in einem Dynamodb mit Wolkenbildung

resources: 
    Resources: 
    DynamoDbTable: 
     Type: AWS::DynamoDB::Table 
     Properties: 
     TableName: Employee 
     AttributeDefinitions: 
      - AttributeName: employeeid 
      AttributeType: S 
      - AttributeName: name 
      AttributeType: S 
      - AttributeName: requests 
      AttributeType: S 
     KeySchema: 
      - AttributeName: employeeid 
      KeyType: HASH 

ich Anfragen möchte eine Liste der Request-IDs für den Benutzer sein, nicht ein String-Wert, so dass keine S-Typ, so kann ich durchlaufen sie und rufen Sie die die ich will. Lassen Sie mich wissen, ob mein Schema in Ordnung ist. Danke im Voraus.

Antwort

2

Werfen Sie einen Blick auf die folgenden documentation. Beachten Sie, dass Sie das Attribut nicht als Index definieren müssen, wenn Sie es nicht definieren.

DynamoDB ist eine NoSQL-Datenbank und ist schemaless, was bedeutet, dass, andere als die primären Schlüsselattribute, die Sie nicht bei Tisch Erstellungszeit keine Attribute oder Datentypen definieren müssen.

Also in Ihrem Fall sollte die serverless.yml nur angeben:

resources: 
    Resources: 
    DynamoDbTable: 
     Type: AWS::DynamoDB::Table 
     Properties: 
     TableName: Employee 
     AttributeDefinitions: 
      - AttributeName: employeeid 
      AttributeType: S 
     KeySchema: 
      - AttributeName: employeeid 
      KeyType: HASH 

Und Sie in Ihrem Code können in die Tabellenattribute dynamisch schreiben, die von Sätzen bestehen, Karten oder sogar json.

+0

wow, sehr looy goosy. Etwas gewöhnungsbedürftig, aber danke. –