Ich bin dabei, ein Abstimmungssystem für eine Webanwendung zu erstellen und frage mich, wie ich die Stimmen am besten in der (SQL-)Datenbank speichern kann.
Das Abstimmungssystem ist ähnlich dem von StackOverflow. Ich überlege gerade, ob ich die Up- und Down-Votes in verschiedenen Tabellen speichern soll. Auf diese Weise ist es einfacher, alle Up- bzw. Down-Votes zu zählen. Andererseits muss ich zwei Tabellen abfragen, um alle Stimmen für einen Benutzer oder einen Artikel zu finden.
Eine Alternative wäre eine Tabelle mit einem booleschen Feld, das angibt, ob es sich um eine Auf- oder Abwärtsabstimmung handelt. Aber ich schätze, dass das Zählen von Hoch- oder Runterstimmen ziemlich langsam ist (wenn man viele Stimmen hat), und ein Index für ein boolesches Feld ist (soweit ich weiß) nicht sehr sinnvoll.
Wie würden Sie die Datenbankstruktur erstellen? Eine oder zwei Tabellen?