Una tabla que contenga todos los user_ids y post_ids es una mala idea, ya que crece exponencialmente. Imagínese si su solución de foro creciera a un millón de publicaciones y 50,000 usuarios. Ahora tienes 50 mil millones de registros. Eso será un problema.
El truco es usar una tabla como dijiste, pero solo contiene publicaciones que se han leído desde este inicio de sesión, de publicaciones que se publicaron entre el último inicio de sesión y este inicio de sesión.
Todas las publicaciones realizadas antes del último inicio de sesión se consideran leídas.
Es decir, inicié sesión por última vez el 3/4/2011 y luego me conecto hoy. Todas las publicaciones realizadas antes del 4/3/2011 se consideran leídas (no son nuevas para mí). Todas las publicaciones entre el 4/3/2011 y ahora no se leen a menos que se vean en la tabla de lectura. La tabla de lectura se vacía cada vez que inicio sesión.
De esta manera, su tabla de publicaciones leídas nunca debería tener más de un par de cientos de registros para cada miembro.