Pues no, puede ser algo tan simple como una tabla de dos columnas:
Entonces cuando hay un cambio a algún tema, o se crea algún tema, hay un insert a esa tabla:
Código SQL:
Ver originalINSERT INTO unread VALUES ($user_id, $thread_id)
Luego cuando ves un tema puede hacer un:
Código SQL:
Ver originalDELETE FROM unread WHERE thread_id=$thread_id
Si quieres marcar todos los foros como leidos
Código SQL:
Ver originalDELETE FROM unread WHERE user_id=$user_id
Donde $user_id es igual al id de usuario que quieres marcar todos como leidos (en este caso el que inicio sesión.
Saludos.