Banyak perangkat lunak forum yang lebih besar menggunakan tabel pelacakan untuk mengetahui siapa yang telah membaca apa, kira-kira seperti ini (sangat disederhanakan):
CREATE TABLE topic_tracking (
user_id INT NOT NULL,
topic_id INT NOT NULL,
last_visit DATETIME NOT NULL,
PRIMARY KEY (user_id, topic_id)
)
Anda kemudian menggunakan join pada tabel ini untuk memeriksa apakah posting yang Anda tampilkan telah dibaca atau tidak. Karena Anda akan membuat halaman utas Anda, ini akan menghasilkan kueri tambahan yang relatif sedikit (bergantung pada berapa banyak posting yang Anda tampilkan per halaman).
Saat pengguna mengunjungi utas, perbarui tabel pelacakan ini dengan stempel waktu kunjungan mereka. Kemudian saat menampilkan tautan utas Anda, periksa tabel ini untuk melihat apakah last_visit mereka lebih awal dari posting terakhir di utas. Ini juga memungkinkan Anda menampilkan utas "diperbarui", bukan hanya utas "baru".