borisbaer: Individuelle Datenbankzugriffe einrichten

Beitrag lesen

problematische Seite

Verstehe ich das richtig, dass es n Spiele gibt und n Benutzer?

Ja, genau!

Dann würde ich die DB-Tabelle Spiele und die DB-Tabelle Benutzer unverändert lassen und eine dritte DB-Tabelle einrichten.

  • id
  • spiele_id
  • benutzer_id
  • wertung set 0|1|2

Steht hier id für die jeweilige Checkbox?

Dann würde die Datenbank-Tabelle also beispielsweise so aussehen?

|user|spiele_id|id|value|
|0001|0001     |0 |1    |
|0001|0001     |1 |0    |
|0002|0001     |2 |2    |

Nehmen wir an, wir haben zwei Benutzer: 0001 und 0002. Außerdem haben wir zunächst einmal ein Spiel (0001). Bei diesem Spiel gibt es drei Checkboxen (0, 1, 2).
Benutzer 0001 hat für das Spiel 0001 die Checkboxen mit der id 0 und mit der id 1 jeweils auf 1 gesetzt. Bei der dritten Checkbox hat er gar nichts gesetzt, insofern wurde da auch nichts in der Datenbank gespeichert. Benutzer 0002 hat beim Spiel 0001 nur bei der dritten Checkbox einen Wert gesetzt, und zwar 2.

Ist das so zu begreifen? Natürlich gäbe es bei entsprechend vielen Benutzern dann entsprechend viele Einträge in der Datenbank und nicht wie bei meinem Beispiel mit dem String pro Benutzer nur eine Zeile in der Datenbank-Tabelle. Die Checkboxen wären jedoch einer konkreten id zugeordnet und man könnte einfach neue hinzufügen, ohne sich Gedanken um die alten machen zu müssen. Ich denke, das könnte für meine Zwecke funktionieren.

P.S.: Man könnte es ja sogar so einrichten, dass nur die Werte 1 und 2 gespeichert werden und sobald der Wert auf 0 gesetzt wird, wird der Eintrag in der Datenbank wieder gelöscht. Wäre platzsparender.