Zitat:
Zitat von DokuLeseHemmung
Ja.
Man kann zwar rekursiv löschen (15 Ebenen tief), aber nicht SELECTen.
Du könntest alternativ auf "Nested Sets" umsteigen.
|
Ich hab das jetzt so gelöst, dass ich eben damit lebe. :) Der Admin hat dann eben auch darauf zu achten, dass er die Rechteverteilung auch in den Unterforen richtig einstellt. Ich denke das ist kein Problem. Man könnte es auch als ein Feature betrachten, zumal man dann bestimmte Forenbereiche wieder öffnen kann.
Dabei bleibt nur die Frage wie ich das mache, dass dann das Forum mit Rank_visible=4 trotzdem gelistet wird, weil es irgendwo ein Unterforum hat, wo auch User mit einem schwächeren Rank willkommen sind... Ich denke darauf muss ich dann verzeichten. Man kann ja für den Fall auch den Link des Unterforums weiter geben. Außerdem wird dies in der Praxis eh extrem selten verwendet.
Was sind "Nested Sets"? Davon hab ich noch nicht gehört.
Edit:
Code:
CREATE TABLE `forum` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`order` bigint(20) NOT NULL,
`parent_id` bigint(20) NOT NULL,
`user_id` bigint(20) NOT NULL,
`user_name` varchar(128) NOT NULL,
`date_created` datetime NOT NULL,
`date_edited` datetime NOT NULL,
`ehit_count` bigint(20) NOT NULL,
`is_closed` tinyint(1) NOT NULL,
`rank_visible` tinyint(3) NOT NULL,
`type` tinyint(1) NOT NULL COMMENT '0=Forum;1=Thread;2=Post;3=Spacer',
`post_count` bigint(20) NOT NULL,
`themes_count` bigint(20) NOT NULL,
`latest_post_id` bigint(20) NOT NULL,
`is_sticky` tinyint(1) NOT NULL,
`is_top` tinyint(1) NOT NULL,
`is_announce` tinyint(1) NOT NULL,
`mods` varchar(255) NOT NULL,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
So sieht die Tabelle für das (gesamte!!) Forum aus.
Wie parent_id schon sagt, lässt sich damit alles Mögliche in einander verschachteln.
ehit_count ist kein Tippfehler. Dieses Feld wird gleichzeitig für die Anzahl der Edits bei einem Thread oder Post, als auch für die Anzahl der Hits bei einem Forum oder verwendet :).
Interesant wird es auch, wenn ein Post in einem Thread gemacht wird. Dann muss ich rückwärts die Struktur durchgehen und dort die Anzahl der Posts sowie die ID des neusten Posts zu aktualisieren. Ist aber kein Problem.
Ähnliches habe ich auch realisiert um den Pfad in dem der User sich gerade befindet anzuzeigen. :)
lg