ZenekN
20.08.2014, 08:36:22
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
20.08.2014, 09:06:36
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
20.08.2014, 09:35:35
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
20.08.2014, 09:49:29
Jeżeli baza jest zbudowana prawidłowo, powinno wystarczyć jedno zapytanie, które usunie wszystkie dzieci usuwanej kategorii..
nospor
20.08.2014, 10:03:35
@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
20.08.2014, 10:09:04
Tak, tak chodzi o flagi
CuteOne
20.08.2014, 10:25:23
OK, nie zmienia to faktu, że dla prawidłowo zbudowanej bazy zmiana flagi to nadal jedno zapytanie
Pyton_000
20.08.2014, 10:32:07
@CuteOne o ile jest to nested set, w przeciwnym wypadku nie.
nospor
20.08.2014, 10:36:04
Dlatego napisał:
Cytat
dla prawidłowo zbudowanej bazy
CuteOne
20.08.2014, 10:40:54
No właśnie, ja tu się wymądrzam, a nie znam budowy bazy. ZenekN, może pokaż jak ona wygląda
Pyton_000
20.08.2014, 10:45:51
@nospor jest wiele implementacji drzew i wszystkie są poprawne

(może poza jakimiś potworami z Gimbazy)
nospor
20.08.2014, 10:48:21
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?
Pyton_000
20.08.2014, 12:58:08
Jeżeli prowadzi z pkt. A do B to tak

Tutaj raczej trzeba się zastanowić czy optymalne

Ale to już dywagacje filozoficzne przy piwie
nospor
20.08.2014, 12:59:08
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
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.