Witam
Mam taki problem, jak ułozyć tabele że by utworzyć forum wielopoziomowe?
Chodzi o zagłebienia, tak jak dzrewo katalogów. i nie mam pojęcia jak to zrobic przy tym zeby było łatwo odczytywać ścieżke. np. głowna -> cos tam -> icos -> zrodło.
Witam
Mam taki problem, jak ułozyć tabele że by utworzyć forum wielopoziomowe?
Chodzi o zagłebienia, tak jak dzrewo katalogów. i nie mam pojęcia jak to zrobic przy tym zeby było łatwo odczytywać ścieżke. np. głowna -> cos tam -> icos -> zrodło.
Tabela działów:
ID_DZIAŁU
NAZWA
...
ID_DZIAŁU_NADRZĘDZNEGO // NULL jeśli ten jest całkowicie nadrzędny
Tabela postów:
ID_POSTU
AUTOR
TEKST
...
ID_DZIAŁU_ZAWIERAJĄCEGO
hmm, chyba nie o to mi chodziło, chodzi o to żeby zagłębienia były nieograniczone, tz. tak jak drzewo katalogów.
Ale wpadłem na taki oto pomysł:
Mam kategorie wszytkich galezi tego virtualnego dzrewa w jednej tabeli.
| id | id_poprzedniej | id_nastepnej | nazwa |
I w polu id_poprzedniej jest id kategori w której jest zawarta pobrana kategoria ta kategoria, gdy = 0, w tedy jest to początek dzrzewa. Pole id_nastepnej to pole id jakie zawiera nastepne kategorie, jeżeli w tabeli znajdzie rekordy id_poprzedniej=id_nastepnej to te rekordy nalezą do tej katerorii. a jeżeli id_nastepnej = 0 to znaczy ze jest "plikiem" (koncem drzewa).
Ale teraz jest problem, jak odczytać ścieżkę w której aktualnie jestesmy?, bo mam pomysł ale jeżeli jesteśmy w dzrzewie zagłebieni np. 10 poziomow, musiał bym wykonac 10 zapytan do bazy, a co wpłynie na wydajnosc :/
gdy użytkownik rozwinie wybrany wątek (o pewnym ID) pobierasz z bazy wszystkie posty o tym głównym ID do tablicy, i potem na niej operować
Poszperaj tutaj: http://cvs.4programmers.net/cgi-bin/cvsweb/roadrunner/include/ konkretnie modul functions_forum.php.
Znajdz tez strukture klasy: http://cvs.4programmers.net/cgi-bin/cvsweb/roadrunner/install/schema/mysql.sql
Ten algorytm wykorzystuje obecnie serwis 4programmers.net, zarowno do generowania poddzialow na forum oraz drzewa kategorii: http://4programmers.net/text.php