Hov, jeg misforstod dit spørgsmål samt hvad du ville med indlægget her. :-)
Der er som sådan ikke noget, der hedder forkert og korrekt struktur, da det vigtigste er, at det skal passe til netop dit formål. Man kan tale om, hvad der kunne fungere bedre samt om mere fordelagtige løsninger frem for løsninger, der ikke holder i længden.
Jeg synes du mangler lidt i din opbygning. Når jeg tænker forum, tænker jeg, at der på startsiden af forummet skal være en oversigt over nogle kategorier - altså mangler du en kategori-tabel. Derudover
kunne det være, at du også ville have underkategorier med. Dette kan også klares i kategori-tabellen. Umiddelbart ville jeg opbygge det således (med flg. tabeller):
CREATE TABLE IF NOT EXISTS `forum_traede` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`kategori_id` int(11) NOT NULL,
`bruger_id` int(11) NOT NULL,
`titel` varchar(255) NOT NULL,
`tekst` text NOT NULL,
`dato` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `forum_kategorier` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`overID` int(11) NOT NULL, // <-- dette kunne bruges, hvis du ville have underkategorier
`titel` enum('1','2','3','4','5') NOT NULL,
`beskrivelse` varchar(255) NOT NULL,
`dato` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `forum_kommentarer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`traed_id` int(11) NOT NULL,
`bruger_id` int(11) NOT NULL,
`tekst` text NOT NULL,
`dato` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
I tabellen overID kan du så beslutte, om kategorien skal "høre under" en anden kategori således, at kategorien bliver en underkategori. Fx:
Kategori: DJ-musik | id=1 | overID=0 (dette er en hovedkategori)
Kategori: Beats | id=2 | overID=1 (dette er en underkategori, der hører under "DJ-musik".
Håber du kan forstå min tankegang, ellers må du endelig spørge.