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

Überprüfen Sie den Wert in der MySQL-Zeile

Das Speichern Ihrer Werte für ein Forum für Benutzer, die das Thema noch nicht gelesen haben (was eine schlechte Idee ist), wird nicht skalierbar sein. Machen Sie es umgekehrt wenn Sie wirklich müssen, da Sie auch die Probleme haben werden, die mit dem Hinzufügen von Einträgen zu jedem Thema in Ihrer Datenbank verbunden sind bei einer neuen Benutzeranmeldung.

Anstatt auf eine relationale Tabelle zu verzichten, versuchen Sie es stattdessen wie folgt:

Table: topics
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 1  | xyz   | .... | ...

Table: replies
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 3  | xyz   | .... | ...

Table: read_topics
+---------+----------+
| user_id | topic_id |
+---------+----------+
| 2       | 1        |

Ihr Ansatz ist zwar möglich (und leichter vorstellbar), bricht jedoch zusammen, wenn Sie eine große Anzahl von Benutzern haben, und Skalierbarkeit ist das, worauf Sie in den Kommentaren angespielt haben. Ein weiteres Problem hier ist, dass Sie mit Ihrem Ansatz massiv haben Leistungseinbußen, da Sie die Daten aus der Datenbank abrufen, aufteilen und dann bearbeiten und neu kombinieren müssen, bevor Sie eine weitere Transaktion durchführen. Sie haben auch Probleme damit, dass die Tabelle gleichzeitig von zwei CGI-Threads beschrieben wird . Viel Spaß damit...

Sie verwenden ein Tool für die Datenbearbeitung, Sortierung, Datenbeziehungen und Speicherung, also verwenden Sie es für alle, nicht nur als Abladeplatz für Informationen.