Uw waarden opslaan voor een forum voor gebruikers die het onderwerp nog niet hebben gelezen (wat een slecht idee is) zal niet schaalbaar zijn. Doe het anders om als het echt moet, aangezien u ook de problemen zult hebben die verband houden met het toevoegen van items aan elk onderwerp in uw database bij aanmelding van een nieuwe gebruiker.
In plaats van af te zien van een relationele tabel, probeer het in plaats daarvan als volgt te doen:
Table: topics
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 1 | xyz | .... | ...
Table: replies
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 3 | xyz | .... | ...
Table: read_topics
+---------+----------+
| user_id | topic_id |
+---------+----------+
| 2 | 1 |
Uw aanpak, hoewel mogelijk (en gemakkelijker voor te stellen), begint af te brokkelen wanneer u enorme hoeveelheden gebruikers heeft, en schaalbaarheid is waar u in de opmerkingen op gezinspeeld heeft. Een ander probleem hier is dat je met je aanpak enorme prestatieboetes omdat u de gegevens uit de database moet halen, deze moet splitsen en vervolgens moet manipuleren en opnieuw moet combineren voordat u een nieuwe transactie uitvoert. Je hebt ook problemen met dat naar de tabel wordt geschreven door twee CGI-threads tegelijk . Veel plezier ermee...
U gebruikt een tool voor gegevensmanipulatie, -sortering, gegevensrelaties en opslag, dus gebruik het voor al deze tools, niet alleen als een stortplaats voor informatie.