Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Usuwanie drzewa kategorii
ZenekN
post 20.08.2014, 08:36:22
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


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.
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 09:06:36
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 20.08.2014, 09:35:35
Post #3





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


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

Ten post edytował ZenekN 20.08.2014, 10:09:52
Go to the top of the page
+Quote Post
CuteOne
post 20.08.2014, 09:49:29
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Jeżeli baza jest zbudowana prawidłowo, powinno wystarczyć jedno zapytanie, które usunie wszystkie dzieci usuwanej kategorii..
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 10:03:35
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@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.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 20.08.2014, 10:09:04
Post #6





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


Tak, tak chodzi o flagi
Go to the top of the page
+Quote Post
CuteOne
post 20.08.2014, 10:25:23
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


OK, nie zmienia to faktu, że dla prawidłowo zbudowanej bazy zmiana flagi to nadal jedno zapytanie smile.gif

Ten post edytował CuteOne 20.08.2014, 10:26:03
Go to the top of the page
+Quote Post
Pyton_000
post 20.08.2014, 10:32:07
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@CuteOne o ile jest to nested set, w przeciwnym wypadku nie.
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 10:36:04
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dlatego napisał:
Cytat
dla prawidłowo zbudowanej bazy


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
CuteOne
post 20.08.2014, 10:40:54
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


No właśnie, ja tu się wymądrzam, a nie znam budowy bazy. ZenekN, może pokaż jak ona wygląda

Ten post edytował CuteOne 20.08.2014, 10:41:17
Go to the top of the page
+Quote Post
Pyton_000
post 20.08.2014, 10:45:51
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@nospor jest wiele implementacji drzew i wszystkie są poprawne smile.gif (może poza jakimiś potworami z Gimbazy)
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 10:48:21
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 20.08.2014, 12:58:08
Post #13





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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
Go to the top of the page
+Quote Post
nospor
post 20.08.2014, 12:59:08
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Wersja Lo-Fi Aktualny czas: 26.06.2025 - 11:15