Nette Frage mit vielen Details:)
Wenn ich nur einen Rat hätte, wäre es:
Denken Sie daran, dass es mit NoSQL nicht nur OK, sondern normal ist, sogar empfohlen, Ihre Daten zu de-normalisieren.
Dies sagte, für Sie "Dilemna", war Ihr Vorschlag ziemlich gut. Sie sollten sich mit dem Datum als range_key
ent-normalisieren. Eine Möglichkeit könnte sein, eine Tabelle wie folgt hinzuzufügen:
-
hash_key
: Schüler -
range_key
: Datum -
team
: team_id
Aber immer noch, das ist nicht perfekt, da der Tisch weiter wachsen würde. Jede Aktualisierung fügt ein neues Objekt ein. In der Tat ist es nicht möglich, einen Schlüssel zu bearbeiten. Sie müssten Ihren eigenen Reinigungscode machen.
In DynamoDB müssen Sie sich keine Sorgen über eine Leistungsverlangsamung machen, die durch "alte" Elemente verursacht wird (außer beim Scannen). Dies ist die Hauptstärke von DynamoDB. Nichtsdestotrotz ist dies immer eine gute Methode, Daten sauber zu halten, aber konsistent zu sein. Wenn Sie abgelaufene Projekte verschieben, verschieben Sie alle oder Sie werden nicht wissen, wo sich Ihre Daten befinden.
Letzter Vorschlag: Sind Sie sicher, dass "ids" am besten Ihre Objekte beschreiben? Meistens macht ein Name, ein Datum oder irgendein eindeutiges Attribut einen besseren Schlüssel.