Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewiasta struktura strony
Komunista
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 31.07.2007

Ostrzeżenie: (0%)
-----


Witam.
Od jakiegoś czasu przybierałem się do pisania małego systemu - "niestety" jak to zwykle bywa projekt trochę się rozrósł. Wymyśliłem, że będzie dostępnych kilka typów "contentu", mianowicie: zwykła strona (tekst z bazy), moduł (moduł to np. księga gości, formularz kontaktowy), widok (renderowanie jakiegoś pliku).
Dajmy na to tabela "struktura" porządkująca "content". Z wykorzystaniem nested tree bo to chyba najlepsze rozwiązanie(?).
- id elementu
- nazwa
- typ
- lft
- rgt
W praktyce takie drzewko ma wyglądać tak:
Kod
root

  artykuły
    php
      oop
    sql
  jakaś podstrona - np. zrenderowany widok
  formularz kontaktowy - no i to jest moduł
  znów sobie jakas podstrona - tym razem tekst z bazy


I dla każdego typu tabela z potrzebnymi informacjami jak np. nazwa modułu, czy plik widoku.

Konkretnie chodzi mi o uzyskanie takiej struktury danych jak np. tu na stronie http://www.typolight.org/ . Jak już przy TL jestem to powiem, że chciałem z niego trochę zaczerpnąć, jednak tam jest to dość bardziej rozbudowane od tego, czego potrzebuję, a nie chciałbym przekombinować na początku.

Podsumowując, chciałbym się dowiedzieć jakie informacje trzymać w drzewie, a jakie poza nim. Mile widziane jest również wytknięcie wad takiego rozwiązania oraz ciekawe pomysły winksmiley.jpg

Ten post edytował Komunista 1.07.2009, 21:23:43
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wygooglaj sobie temat mysql drzewka, jest tego troszkę. [;

Cytat
Podsumowując, chciałbym się dowiedzieć jakie informacje trzymać w drzewie,

A jaśniej?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Komunista
post
Post #3





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 31.07.2007

Ostrzeżenie: (0%)
-----


No właśnie chodzi o ocenę mojej koncepcji bo sam już nie wiem jak to ugryźć wstydnis.gif
Z samym wdrożeniem nie powinno być problemu, chodzi o to czy idę dobra drogą

Ten post edytował Komunista 1.07.2009, 21:32:20
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Jest kilka koncepcji drzewek; IMHO najlepszą w implementacji (wydajność) jest struktura z zapisywaniem kolejności oraz zagłębienia danych pozycji.

Fakt, funkcje zarządzające (przenoszenie, kasowanie) wymagają rozpisania, ale poszukiwanie np. rodzica, czy dzieci w takim drzewku jest błyskawiczne.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Komunista
post
Post #5





Grupa: Zarejestrowani
Postów: 16
Pomógł: 3
Dołączył: 31.07.2007

Ostrzeżenie: (0%)
-----


Z tym jak wspominałem powinienem sobie poradzić, chcę to najpierw jakoś sensownie zaplanować.
Dodaję element do drzewa, elementy mają wspólne atrybuty takie jak np. layout, i teraz zastanawiam się czy nie utworzyć tabel:
struktura - id, położenie
elementy - id elementu, typ, atrybuty
i osobne tabele dla każdego typu elementów
Czy wrzucić typ i atrybuty do struktury. Przeglądając różne źródła widziałem, że i różne typy danych bywały w jednej tabeli, jakoś mi się to nie podobało, jednak całość działała. I stąd te moje rozterki bo przyznam (zresztą to widać), że na projektowaniu baz danych się nie znam.
Go to the top of the page
+Quote Post
Pilsener
post
Post #6





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Dlatego trzeba ogarnąć kilka różnych koncepcji, ja używam np. tej:
http://blog.mwojcik.pl/2008/02/17/drzewa-k...-php-metoda-ip/
Go to the top of the page
+Quote Post
WebCM
post
Post #7





Grupa: Zarejestrowani
Postów: 375
Pomógł: 20
Dołączył: 28.07.2006

Ostrzeżenie: (0%)
-----


Korzystam z zagnieżdżonych drzew (ang. nested sets). Zapisuję także ID drzewa nadrzędnego, aby potem odbudować strukturę. Kod odbudowy: http://webcm.pastebin.pl/9744

Ten post edytował WebCM 2.07.2009, 10:10:54


--------------------
„Jesteśmy różni, pochodzimy z różnych stron Polski, mamy różne zainteresowania, ale łączy nas jeden cel. Cel ten to Ojczyna, dla której chcemy żyć i pracować.” Roman Dmowski
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ok, ale zobacz, ile zapytań musisz wywołać w celu skonstruowania drzewa.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:51