Mysql
 sql >> Base de données >  >> RDS >> Mysql

Vérifier la valeur dans la ligne MySQL

Stocker vos valeurs pour un forum pour les utilisateurs qui n'ont pas encore lu le sujet (ce qui est une mauvaise idée) ne sera pas évolutif. Faites-le dans l'autre sens si vous devez vraiment le faire, car vous aurez également les problèmes associés au fait d'avoir à ajouter des entrées à chaque sujet de votre base de données lors de l'inscription d'un nouvel utilisateur.

Au lieu de renoncer à une table relationnelle, essayez plutôt de procéder comme suit :

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

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

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

Votre approche, bien que possible (et plus facile à imaginer), commence à s'effondrer lorsque vous avez un grand nombre d'utilisateurs, et l'évolutivité est ce à quoi vous avez fait allusion dans les commentaires. Un autre problème ici est qu'avec votre approche, vous avez massive des pénalités de performances car vous devez extraire les données de la base de données, les diviser, puis les manipuler et les recombiner avant d'effectuer une autre transaction. Vous avez également des problèmes avec le fait que la table soit écrite par deux threads CGI en même temps . Amusez-vous avec ça...

Vous utilisez un outil pour la manipulation, le tri, les relations entre les données et le stockage des données, alors utilisez-le pour tous, et pas seulement comme un dépotoir d'informations.