|
Posted by Scot McConnaughay on 01/03/06 17:29
I agree, this is probably a good topic for a database forum, more than
for the PHP forum... but, since it is here:
What would be the advantage of having a table for each thread, does that
not go against the idea of database normalization? I would think that it
would cause quite a few duplicate fields, at least in the fact that each
'thread' table would be essentially the same.
Also, it seems to me that SQL / MySQL is very fast. If the database is
on a decent server what would be the speed advantage of each thread
having its own table?
Just curious, not bashing your idea Frizzle :)
Scot
Lüpher Cypher wrote:
> frizzle wrote:
>
>> Hi there,
>>
>> I'm going to build a simple forum in mySQL.
>> I've thought about it for a while now, but still can't figure it
>> out completely:
>>
>> If i have say 5 main categories,
>> One has 5 sub-categories.
>> Each sub category consists of individual threads.
>> Wich each has the possibility to be commented.
>>
>> The question concerns the thread & comments part.
>> My first idea was to create one table Threads, and one
>> Comments.
>> The Threads-table would have the original post, starting a thread,
>> and the Comments table would have the comment, and the id of
>> the thread it belongs to. (so all comments there are in the whole
>> forum)
>>
>> Now i thought of the following:
>> I could create a new table for each thread to save it's comments in.
>> And call it e.g. 'Comments_4576', (belonging to thread 4576)
>>
>> Pro is a lot faster to load, delete etc. but contra is more difficult
>> to
>> count cross-tables and everything.
>>
>> What could i do best?
>>
>
> As you said in the beginning :)
>
> TABLE Category
> ID
> ...
> ParentID ... REFERENCES Table(ID)
>
> TABLE Thread
> ID
> ...
>
> TABLE Message
> ID
> ...
> ThreadID ... REFERENCES Thread(ID)
> ReplyTo ... REFERENCES Message(ID)
>
> is one possibility coming from
>
> 1) Category may have subcategories (0..*)
> 2) Subcategory must have parent category (1)
> 3) Category consists of threads (0..*)
> 4) Thread consists of messages (1..*)
> 5) Message could either be top-level or a reply to one of the messages
> in thread
>
> Another possibility is a "linear" thread, i.e. posts are simply listed
> one after another, in which case there is no ReplyTo field.
> I wouldn't say that having a table for each thread is a good design.
>
> Read some on relational database design :)
> Btw, I think this is rather a topic for design or sql group :) Has
> nothing to do with PHP :)
>
>
--
Scot McConnaughay
[Back to original message]
|