Jestem w trakcie pisania nowego forum do projektu, kiedy przyszedł mi do głowy jeden pomysł: aby trzymać tematy i posty w jednej tabeli, a właściwie pozbyć się konstrukcji ramowej powszechnie znanego rozwiązania jakim jest trzymanie postów i ram tematów w osobnej tabeli.
Tabela miałaby mniej więcej taką budowę:
CREATE TABLE `cms_forum` ( `post_id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `post_parent` INT( 11 ) NULL , `post_title` TEXT NOT NULL , `post_text` TEXT NOT NULL , `post_date` DATETIME NOT NULL , `post_user` INT( 11 ) NOT NULL ) ENGINE = MYISAM ;
Doszukałem się kilku zalet i wad:
+ łatwa implementacja, szybkie usuwanie tematów, bez sprawdzania, czy ten nie jest czasem pierwszym (temat)
- odejście od sprawdzonego już, szybkiego i optymalnego rozwiązania - wolny listing tematów
- nagromadzenie dodatkowych pól, których nie przedstawiłem w powyższej strukturze, czyli post_status_locked, post_status_sticked itd, co spowoduje nagromadzenie danych, choćby zero jedynkowych.
Prosiłbym o opinie i podzielenie się doświadczeniami w projektowaniu fór.