Ich werde ein Abstimmungssystem für eine Webanwendung erstellen und mich fragen, wie der beste Weg wäre, die Abstimmungen in der (SQL) -Datenbank zu speichern.Datenbankstruktur für Abstimmungssystem mit Auf- und Abwärtsstimmen
Das Abstimmungssystem ähnelt dem von StackOverflow. Ich denke jetzt darüber nach, ob ich die Abstimmungen in verschiedenen Tabellen speichern soll. So ist es einfacher alle Ups zu zählen bzw. Stimmen runter. Auf der anderen Seite muss ich zwei Tabellen abfragen, um alle Stimmen für einen Benutzer oder einen gewählten Gegenstand zu finden.
Eine Alternative wäre eine Tabelle mit einem booleschen Feld, das angibt, ob diese Abstimmung eine Auf- oder Ab-Abstimmung ist. Aber ich denke, dass das Hoch- oder Herunterzählen der Stimmen ziemlich langsam ist (wenn Sie viele Stimmen haben), und ein Index für ein boolesches Feld (soweit ich weiß) macht keinen großen Sinn.
Wie würden Sie die Datenbankstruktur erstellen? Ein oder zwei Tische?
Wenn Sie nur Stimmen auf Beiträge zählen, egal wer/wann/warum, würde ich ein Feld "Stimmen" in die Post-Tabelle setzen (wie kann man mehr als eine Stimme verhindern?). Wenn Sie Stimmen mit allen Details zählen müssen (wann, wer ...), brauchen Sie definitiv eine andere Tabelle. Und wenn Sie Stimmen für verschiedene Entitäten zählen (Beiträge, Kommentare, Videos), würde ich eine andere Tabelle hinzufügen (zB vote_type). –
@Julio Wie können Sie feststellen, ob ein Benutzer bereits über einen bestimmten Beitrag abgestimmt hat? –
@El Ronnoco Wie würde ich seine Spezifikationen kennen? Ich gebe nur verschiedene Wege. Mit den letzten beiden Lösungen können Sie. –