sql >> Base de Datos >  >> RDS >> Mysql

Verifique el valor en la fila de MySQL

Almacenar sus valores para un foro para usuarios que aún no han leído el tema (lo cual es una mala idea) no será escalable. Hágalo al revés si realmente tiene que hacerlo, ya que también tendrá problemas asociados con tener que agregar entradas a cada tema en su base de datos al registrarse un nuevo usuario.

En lugar de renunciar a una tabla relacional, intente hacerlo de la siguiente manera:

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

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

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

Su enfoque, si bien es posible (y más fácil de imaginar), comienza a descomponerse cuando tiene una gran cantidad de usuarios, y la escalabilidad es a lo que se refirió en los comentarios. Otro problema aquí es que con su enfoque, tiene enormes penalizaciones de rendimiento porque tiene que extraer los datos de la base de datos, dividirlos y luego manipularlos y volver a combinarlos antes de realizar otra transacción. También tiene problemas con que dos subprocesos CGI escriban en la tabla al mismo tiempo . Diviértete con eso...

Está utilizando una herramienta para la manipulación, clasificación, relaciones de datos y almacenamiento de datos, así que utilícela para todos ellos, no solo como un vertedero de información.