Salut,
Si j'ai bien compris ta demande la réponse est bien une colonne te permettant une auto jointure sur la table (gestion de la parentés).
En clair tout les messages sont les mêmes. La seule chose qui différencie le 1er d'un autre c'est qu'il n'a pas de parent.
la table topic devient
f_topics
id
parent_id
f_topic_name
f_topic_content
f_forum_id
f_user_id
f_topic_date
pour avoir la liste des topic select * from f_topics where parent_id is null order by id f_topic_date desc
Il possible de voir la chose d'une façon différente afin d'ajouter, par exemple, un titre et une date de dernière réponse pour faire que la chose plus sexy a utiliser et faire remonter simplement les sujets dans la file
ça devient un truc dans le genre
forums
id_forum PK
title_forum varchar
description
topics
topic_id
title_topic
creation_date_topic
user_create
messages
message_id
topic_id
content (clob)
message_date
user_id
lors de la création d'un message tu alimentes topics et messages
une réponse va dans message.
Pour afficher la liste des topics un simple select sur topic et l'info de dernière réponse et son auteur un subselect dans la requête.
Un truc du genre
select topic_id,title_topic,creation_date_topic, user_create, msg.message_date , msg.usermsg
from topic t,
(select message_date , user_id as usermsg from message m user_id where m.topic_id =f.topic_id ) msg
order by message_date desc
c'est a test et adapter mais le principe est la.
Tu essais de nommer correctement tes colonnes je t'invite à e faire aussi pour les id histoire de n'avoir qu'une seule fois le même nom dans tout le modèle (histoire d'éviter que ce soit le foutoir

).
le f_ n'est pas forcément utile
@+