Most likely it was done that way because PhPBB did it that way (AFAIK, jForum's initial goal was to be a Java based PhPBB replacement/clone ).
A couple of reasons I can think of doing it this way are:
1) To eventually allow for "cross postings" of the same message to multiple forums. NNTP allows this and BB code often takes a lot of tips from this older cousin.
2) This is a pretty standard DB practice when you are mapping tables to in-memory objects. Having "load on demand" object properties can be complex and problematic. It's easier, takes less memory, and faster to have a lighter weight "summary object" that maps to all the fields in one table and a "heavier" related details object.
Can you please tell what the intent was to create a separate table for a post's text (jforum_posts_text). The table seems to be a one-to-one mapping with jforum_posts, so it doesnt fall under the rules of database normalization. Does it have anything to do with Search?
Thnx in Advance.
/Pankaj [originally posted on jforum.net by pankajvermani]
Yes, monroe is completely right about item "2". Having the message text in the same table of all other information uses a lot more of system resources than splitting in two different tables. Also, sometimes a bit of "denormalization" it's good, in order to improve performance.
Rafael [originally posted on jforum.net by Rafael Steil]
Those are the largest trousers in the world! Especially when next to this ad: