Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%)
|
Witam.
Czy ktoś wie lub posiada przykład działającej poprawnie funkcji przesuwania liści i węzłów w strukturze Nested Sets wewnątrz jednej gałęzi (rodzica)? Mam tabelę posiadającą kolumny `id`, `nazwa`, `lft`, `rgt`, `parent`. W jaki sposób zamienić miejscami dwa węzły lub liście wewnątrz tego samego rodzica (uwzględniając, że te węzły mogą posiadać również swoje dzieci itd.)? Z góry dziękuję serdecznie za odpowiedzi (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%)
|
Cytat Lub podzapytania. I nie odwracaj kota ogonem. Pisałeś, że to wyjątkowo trudne a ja twierdzę, że bułka z masłem. To podzapytanie to o ile się nie mylę (już trochę późno jest) jeszcze gorszy pomysł. I nigdzie nie napisałem, że jest to "wyjątkowo trudne", tylko "dosyć skomplikowane" bo jest*. Programiście utrudnia prace, bo każdorazowo musi zaśmiecać treść zapytania fragmentem do wyliczenia tej wartości, a silnik bazy danych wręcz katowany jest jeżeli mamy do czynienia z jakimś sensowniejszym zestawem danych.Cytat Jeszcze bardziej bezsensowne jest przeliczanie kolumny ilekroć chcemy przenieść element lub gałąź. Uznam, że po prostu z rozpędu już to palnąłeś. Bo właśnie napisałeś, że jednokrotne wyliczenie wartości i zapisanie jej jest bardziej bezsensowne niż każdorazowe wyliczenie tej samej wartości. Może jeszcze miałoby to sens w przypadku gdyby owa wyliczana wartość zajmowała masę miejsca, ale tutaj mowa jest o zwykłej liczbie całkowitej.Cytat Nie musisz lubić nested-set, bo jak wszystko mają swoje wady. Fajnie jednak by było, gdybyś nie wprowadzał w związku z tym ludzi w błąd pisząc, że to koszmarnie trudne. A gdzie napisałem, że nie lubię? Zresztą jak można nie lubić "algorytmu"? I nie wciskaj mi słów których nigdy nie napisałem (patrz: koszmarnie trudne) bo takie coś jest po prostu bezczelne.PS. Nie wiem czy zauważyłeś, ale kłócisz się (bo tak to zaczynam odbierać) o straszną pierdołę. O to, że zasugerowałem przechowywanie wyniku jednej operacji na stałe w bazie. * Dobra, może "skomplikowane" to złe słowo tutaj - ale "niewygodne" pasuje idealnie. Ten post edytował Crozin 11.04.2011, 23:34:08 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%)
|
To podzapytanie to o ile się nie mylę (już trochę późno jest) jeszcze gorszy pomysł. Wręcz przeciwnie. Przy większych bazach jest szybsze. I nigdzie nie napisałem, że jest to "wyjątkowo trudne", tylko "dosyć skomplikowane" bo jest*. Programiście utrudnia prace, bo każdorazowo musi zaśmiecać treść zapytania fragmentem do wyliczenia tej wartości Za to przy Twoim sposobie każdorazowo musi zaśmiecać kod wyliczeniami nowych wartości depth przy przenoszeniu gałęzi. Przenosząc gałąź do innej lokalizacji musisz obliczyć depth dla tej lokalizacji. różnicę między wartością bieżącą a doelową i przeliczyć depth wszystkich elementów przenoszonej gałęzi. Rzeczywiście. Mniej skomplikowane. No sorry ale nie przekonasz mnie, że to jest jakiekolwiek ułatwienie. Nie wiem czemu ale odnoszę wrażenie, że znasz zagadnienie jedynie z teorii. Aha. Wolałabym, żebyś się do mnie zwracał w rodzaju żeńskim. |
|
|
|
grz16w Nested Sets - przenoszenie węzłów i liści góra/dół 10.04.2011, 22:42:12
Crozin Zanim zapomnę: o ile dobrze pamiętam phpBB3 albo j... 10.04.2011, 23:13:45
jang http://www.phpriot.com/articles/nested-trees-2/7
... 11.04.2011, 08:18:26
JoShiMa Cytat(grz16w @ 10.04.2011, 22:42:12 )... 11.04.2011, 10:24:51 
grz16w Cytat(JoShiMa @ 11.04.2011, 11:24:51 ... 11.04.2011, 15:13:30 
JoShiMa Cytat(grz16w @ 11.04.2011, 15:13:30 )... 11.04.2011, 21:38:11 
grz16w Cytat(JoShiMa @ 11.04.2011, 22:38:11 ... 11.04.2011, 22:02:31 
JoShiMa Cytat(grz16w @ 11.04.2011, 22:02:31 )... 11.04.2011, 22:37:33
Crozin Można ale jest to dosyć skomplikowane, a trzymanie... 11.04.2011, 22:08:23
Crozin @JoShiMa: Szkoda tylko, że nie dodałeś że dynamicz... 11.04.2011, 22:59:11 
JoShiMa Cytat(Crozin @ 11.04.2011, 22:59:11 )... 11.04.2011, 23:08:01
wiewiorek Joshima napisal: "@Crozin naucz się wreszcie ... 12.04.2011, 07:55:05 
JoShiMa Cytat(wiewiorek @ 12.04.2011, 07:55:0... 12.04.2011, 09:24:17
grz16w Więc tak.. Użyłem metody:
CytatSELECT node.name, ... 12.04.2011, 10:39:37
JoShiMa A to zapytanie wywołujesz w bazie czy w skrypcie P... 12.04.2011, 11:03:46
grz16w Wykonuję to zapytanie przez PHP. Gdy wykonuję w pa... 12.04.2011, 11:27:00 
JoShiMa Cytat(grz16w @ 12.04.2011, 11:27:00 )... 12.04.2011, 21:52:17
Crozin CytatCytatTo podzapytanie to o ile się nie mylę (j... 12.04.2011, 16:53:32
Crozin Nic nie oszukuję. Przecież przy przenoszeniu i tak... 12.04.2011, 21:55:07 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 08:36 |