Potrzebna pomoc przy logicznym zaplanowaniu :)

0

Otoz tak teraz siedze (w sumie to troche pozno i to po calym dniu pracy...) i mysle nad rozwiazaniem katalogu produktow na mysql. Ciezko mi troche wydumac optymalna i szybka strukture danych, tak aby uwzglednic ich wielopoziomowosc (takie drzewo).

Przykladowo, drzewo moze miec taka postac:

Kategoria->rodzaj produktu->producent->model

Oczywiscie wszystko idealnie powiazane i edytowalne :). W tej chwili ide w kierunku oddzielnej tabeli w stylu "rodzaje" z polem ID z auto_increment (wtedy rodzaj produktu to wartosc liczbowa) i drugim polem np "nazwa". Wtedy do tabeli kategorii mozna wrzucic same wartosci ID no i pobierac nazwy kategorii, ale w tym momencie moj pomysl sie wykoleja bo ciezko stad przejsc do nastepnego poziomu drzewa czyli producentow a potem do modeli. Chyba ze dac oddzielna tabele na kazdego producenta, to wtedy bedzie sporo latwiej.

Bede wdzieczny za wszelkie sugestie osob w tym doswiadczonych :). Szukalem na google jakis publikacji nt. ogolnych schematow na budowanie wielostopniowego drzewa ale nic konkretnego...

0

No więc ja tworząc moją stronkę opartą na mysql - z artykułami podzielonymi na działy stworzyłem taką tabelę:

CREATE TABLE hp_sections (
s_id MEDIUMINT NOT NULL AUTO_INCREMENT ,
s_mid MEDIUMINT DEFAULT '0' NOT NULL ,
s_name VARCHAR( 150 ) NOT NULL ,
s_desc TEXT NOT NULL ,
PRIMARY KEY ( s_id )
);

s_id - id automatycznie nadawane
s_mid - id kategorii 'matki' - standardowo równe 0 - czyli kategoria główna
s_name - nazwa
s_desc - opis

Okroiłem mój kod z niepotrzebnych Tobie funkcji i zostawiłem coś takiego:

 $query = " SELECT * FROM {$tables['sections']} WHERE s_mid='$s_id' ORDER BY s_id DESC";
 $result = mysql_query($query);
 while($r = mysql_fetch_array($result)) {
  echo '<p><b><a href="module.php?LoadModule=articles&s_id='.$r['s_id'].'">'.$r['s_name'].'</a></b><br>'.$r['s_desc'].'</p>';
 }

Jeżeli chcesz aby jakiś dział był podziałem to po prostu w s_mid podajesz id działu z którego ma się wywodzić - a na stronie wywolasz zmienną getową s_id z żądaniem wywołania danego działu.

Pod listowaniem danych działów wrzucasz zapytanie czytające produkty z danego GET-s_id.

0

Całkiem niedawno pisałem sklep z podziałem hierarchicznym towarów, z możliwością zagłebienia na osiem poziomów...
Czyli w tabeli miałem 8 pól przechowójących ID kategorii, no i osiem tabel przechowujących poszczególne kategorie, tylko dwa pola ID typu autoincrement, i pole opisujące kategorie.
Domyslnie w opisie produktów były wpisane ID dla każdej z ośmu kategori, jako brak kategotii - było to ważne żeby nie pobierać produktów niesklasyfikowanych.
Algorytm tworzenia dwerza to już bajecznie prosta sprawa, coprawda hierarchia była jedna, ale zawsze można to tak przerobić by była pełna dowolność w budowaniu struktury...

0

Wlasnie nie wiedzalem czy sposob o ktorym mowicie jest popularny czy to tylko moj wymysl i moze wszyscy robia jakos inaczej. Juz to sobie rozrysowalem :).

Dzieki [browar] .

1 użytkowników online, w tym zalogowanych: 0, gości: 1