![]() |
![]() ![]() |
![]() |
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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..
|
|
|
![]()
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 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 419 Pomógł: 5 Dołączył: 7.08.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak, tak chodzi o flagi
|
|
|
![]()
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
![]() Ten post edytował CuteOne 20.08.2014, 10:26:03 |
|
|
![]()
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.
|
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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
![]() |
|
|
![]()
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? ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
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
![]() ![]() |
|
|
![]()
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
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 26.06.2025 - 11:15 |