Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Verifique o valor na linha do MySQL


Armazenar seus valores em um fórum para usuários que ainda não leram o tópico (o que é uma má ideia) não será escalável. Faça ao contrário se você realmente precisar, já que também terá problemas associados a ter que adicionar entradas a todos os tópicos em seu banco de dados após a inscrição de um novo usuário.

Em vez de renunciar a uma tabela relacional, tente fazê-lo da seguinte maneira:
Table: topics
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 1  | xyz   | .... | ...

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

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

Sua abordagem, embora possível (e mais fácil de imaginar), começa a falhar quando você tem uma grande quantidade de usuários, e escalabilidade é o que você mencionou nos comentários. Outro problema aqui é que, com sua abordagem, você tem massivos penalidades de desempenho porque você precisa extrair os dados do banco de dados, dividi-los e depois manipulá-los e recombiná-los antes de fazer outra transação. Você também tem problemas com ter a tabela sendo gravada por dois threads CGI ao mesmo tempo . Divirta-se com isso...

Você está usando uma ferramenta para manipulação de dados, classificação, relacionamento de dados e armazenamento, portanto, use-a para todos eles, não apenas como um depósito de informações.