One Table Or Seperate Tables

I can’t decided which way to go, at the moment i’ve got a table which records various “objects”, ie forum centers, forums, threads, blogs, etc which records where they are in the overall tree. I can’t decided if I should add the fields to the objects table, with nulls where a field does not apply to a field or to give each object it’s own table (possibly with forum centers and forums in their own table and blog centers and blogs in their own table.

Which would be the most efficient way assuming that the cms ever got enough objects added to it. The objects location in the tree is stored in the objects table using modified preorder traversal but with the parent object stored as well, for a quick grabbing of say all threads belonging to forum x.

you cannot really say that a particular storage design is efficient – efficiency is an attribute of data retrieval

there are pros and cons, but if there are few unique columns and many common columns, i would just use one table and NULLs where appropriate

with separate tables, you have all those extra joins to consider