Mysql
 sql >> Database >  >> RDS >> Mysql

Verifica il valore nella riga MySQL

La memorizzazione dei tuoi valori per un forum per utenti che non hanno ancora letto l'argomento (che è una cattiva idea) non sarà scalabile. Fallo al contrario se proprio devi, dal momento che avrai anche i problemi associati alla necessità di aggiungere voci a ogni argomento nel tuo database alla registrazione di un nuovo utente.

Invece di rinunciare a una tabella relazionale, prova invece a farlo come segue:

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

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

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

Il tuo approccio, sebbene possibile (e più facile da immaginare), inizia a crollare quando hai enormi quantità di utenti e la scalabilità è ciò a cui hai accennato nei commenti. Un altro problema qui è che con il tuo approccio hai un approccio massiccio penalità delle prestazioni perché è necessario estrarre i dati dal database, dividerli e quindi manipolarli e ricombinarli prima di effettuare un'altra transazione. Hai anche problemi con avere la tabella scritta da due thread CGI contemporaneamente . Divertiti con quello...

Stai utilizzando uno strumento per la manipolazione, l'ordinamento, le relazioni tra i dati e l'archiviazione dei dati, quindi utilizzalo per tutti, non solo come discarica per le informazioni.