![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 26.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam następujący problem:
Struktura mojej strony ma charakter drzewiasty o dowolnym zagnieźdzeniu (każdy element czymkolwiek by nie był posiada zapisaną wartość rodzica). Wszystkie elementy znajdują się w bazie danych (MySQL). Najprostrzym sposobem (co nie znaczy że dobrym) jest zrobienie pęteli w pętli ... w pętli gdzie każda pętla dostaje Id rodzica i szuka potomstwa a następnie każde potomstwo szuka swego potomstwa. Ma to sporo wad: baza danych jest 'atakowana' ogromną ilością SELECTów, po drugie takie zapętlenie jest skończone a jak pisałem, chciałbym uzyskać site map dla dowolnego zagnieżdzenia. Nie oczekuje że ktoś napisze mi cały skrypt ale może ktoś chętnie podzieli się jakaś koncepcją, z góry dziękuję. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 30.09.2005 Skąd: k-rk Ostrzeżenie: (0%) ![]() ![]() |
takie zapetlanie nie musibyc skończone, zwia to rekurencją, ale rzeczywiscie ilośc SELECT(ów) bedzie duza, rozwiazaniem moze być zapisanie struktury do pliku (cache-owanie) i zmienieanie tego pliku tylko w przypadku zmainy zawartości, tj dodanieu bądz usunieciu czegoś ze struktur. Przydatne moze być "SELECT COUNT(*) FROM struktura"
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 179 Pomógł: 0 Dołączył: 8.10.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 657 Pomógł: 2 Dołączył: 15.08.2003 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Zrób raz taką masakrę z SELECTami jak napisałeś powyżej (wyjdzie ci kilka tysięcy zapytań nawet ;p) potem wygeneruj z tego statyczny HTML i wrzuć na www. A uaktualniać możesz raz na tydzień/miesiąc.
Po co ci dynamiczna mapa |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 26.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
ghostrider: Rekurencje znam, ale powalił mnie własnie problem selectów.
chmolu: czytałem ten topic ale musiałem przeoczyć, sory Vengeance: własnie o taką koncepcję mi chodziło, działa dobrze, serwera ani bazy danych nie obciąża, co do cachowania pomysł ghostridera z liczeniem wierszy wydaje mi się najlepszy dzięki wszystkim za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 08:44 |