Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich eine MySQL-Datenbank für meinen speziellen Fall effizient entwerfen?

Sie haben ein relationales Schema wie dieses:

Es gibt zwei Möglichkeiten, dies zu lösen. Die erste, die "saubere", besteht darin, Ihre "Like"-Tabelle zu erstellen und "count(*)'s" in der entsprechenden Spalte durchzuführen.

Die zweite wäre, in jedem Kommentar einen Zähler zu hinterlegen, der angibt, wie viele Höhen und Tiefen dort waren. Wenn Sie überprüfen möchten, ob ein bestimmter Benutzer für den Kommentar gestimmt hat, müssen Sie nur einen Eintrag überprüfen, was Sie können einfach als eigene Abfrage handhaben und beide außerhalb Ihrer Datenbank zusammenführen (verwenden Sie dazu eine Abfrage, die zu der Kommentar-ID und der Art der Abstimmung führt, die der Benutzer in einem bestimmten Thread abgegeben hat.)

Ihr Ansatz mit einer kommaseparierten Liste ist nicht sehr performant, da Sie ihn nicht ohne höhere Intelligenz oder eine große Menge an Parsing-Strings parsen können. Wenn Sie eine Datenbank haben - nutzen Sie sie!

("Eine Information - Ein Datensatz"!)