Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Usuwanie drzewa kategorii
Forum PHP.pl > Forum > PHP
ZenekN
Hej poprawiam pewną apkę i mam pytanie odnośnie drzewa kategorii.


Drzewo jest trzy stopniowe:

- Kategoria
- Subkategoria
- Podkategoria

Teraz chodzi o relacje i usuwanie poszczególnych gałęzi.

Czy prawidłowym rozwiązaniem jest gdy usuwam kategorię pierwszego stopnia czyli (deleted => true) to pozostałe elementy poziom niżej powinny dostać też deleted=> true ?
a gdy usuwam subkategorię to subkategoria i podkategoria dostaje deleted => true

czy nie jest to przypadkiem przeciążanie zapytań ?

Widzę że mój poprzednik rozwiązał to w trochę inny sposób sprawdzał gdy robił deleted => true dla Kategorii to update do bazy wychodził tylko dla Kategorii a dla pozostałych elementów już nie.
nospor
A rozwiąż to jak masz w zalozeniach. Jak w zalozeniach masz, ze kasujac kategorię nadrzedną, kasowane z automatu są też kategorie podrzedne, to tak zrob.
Jesli takich zalozen nie masz, to tak nie rob. Pytanie tylko co wtedy robic z takimi kategoriami, ktore utracily rodzica? Mają leciec wyzej? A moze nie pozwalac na kasowanie kategorii, gdy ta ma jakies podkategorie? To wszystko zalezy tylko i wylacznie od Twoich założen.
ZenekN
Wydaje mi się że najrozsądniejszym rozwiązaniem jest wysyłanie update array(deleted=>1) dla wszystkich poniżej usuwanego elementu włącznie.
I mam wrażenie albo poprzednik zrobił to z lenistwa albo nie chciał wysyłać za dużo zapytań do bazy.

dzięki za info
CuteOne
Jeżeli baza jest zbudowana prawidłowo, powinno wystarczyć jedno zapytanie, które usunie wszystkie dzieci usuwanej kategorii..
nospor
@CuteOne zauwaz, że on fizycznie nic nie usuwa, tylko ustawia flage/pole deleted na true. No chyba że tak pisząc, naprawdę ma na mysli fizyczne usunięcie rekordu.
ZenekN
Tak, tak chodzi o flagi
CuteOne
OK, nie zmienia to faktu, że dla prawidłowo zbudowanej bazy zmiana flagi to nadal jedno zapytanie smile.gif
Pyton_000
@CuteOne o ile jest to nested set, w przeciwnym wypadku nie.
nospor
Dlatego napisał:
Cytat
dla prawidłowo zbudowanej bazy
CuteOne
No właśnie, ja tu się wymądrzam, a nie znam budowy bazy. ZenekN, może pokaż jak ona wygląda
Pyton_000
@nospor jest wiele implementacji drzew i wszystkie są poprawne smile.gif (może poza jakimiś potworami z Gimbazy)
nospor
Poprawne to pojęcie względne.

Z Krakowa do Warszawy też można dojechać różnymi drogami. Też powiesz, że każda jest poprawna? Nawet ta przez Hamburg? wink.gif
Pyton_000
Jeżeli prowadzi z pkt. A do B to tak wink.gif Tutaj raczej trzeba się zastanowić czy optymalne wink.gif Ale to już dywagacje filozoficzne przy piwie
nospor
No i widzisz, i dla mnie taka droga nie jest prawidlowa, a dla Ciebie jest. Nie mniej jednak w jednym na pewno masz racje: takie rozmowy to tylko przy piwie wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.