Ich bin dabei, eine Backend-Schnittstelle für mehrere Mikrocontroller zu erstellen, um Daten miteinander zu kommunizieren. Wenn man eine Anfrage sendet, erstellt es eine Gruppe. Die anderen werden benachrichtigt und können der Gruppe ebenfalls beitreten. Was wäre die beste Architektur für die Datenbank? Es muss den Überblick behalten, wann jede Gruppe erstellt wurde, wie viele Mikrocontroller angeschlossen wurden und wann sie endete.
Für diesen Anwendungsfall wäre eine relationale Datenbank eine gute Wahl, da sie leicht strukturierte Daten speichern und abrufen kann. Hier ist ein mögliches Datenbankschema: Tabelle: Gruppe id (primary key) created_at end_at Tabelle: Microcontroller id (primary key) group_id (foreign key to Group) joined_at In diesem Schema wird jede Gruppe als Zeile in der Gruppentabelle mit einer eindeutigen ID dargestellt, die Zeit, in der sie erstellt wurde, und die Zeit, in der sie endete (falls zutreffend). Wenn ein Mikrocontroller einer Gruppe beitritt, wird eine Zeile in die Microcontroller-Tabelle mit ihrer eigenen eindeutigen ID und einer ausländischen Schlüsselreferenz zu der Gruppe hinzugefügt, die sie verbunden hat. Die cointed_at-Spalte zeichnet zum Beispiel die Zeit auf, in der der der der Mikrocontroller der Gruppe beigetreten ist. Um die Anzahl der Mikrocontroller abzufragen, die einer bestimmten Gruppe beigetreten sind und wenn sie verbunden sind, können Sie eine JOIN-Anweisung zwischen der Gruppe und den Microcontroller-Tabellen verwenden.