Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> "Własna" kolejność rekordów w tabeli
Nivelis
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 10.11.2013

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


Witam,

o dziwo nie potrafię znaleźć rozwiązania swojego problemu w internecie, dlatego będę również wdzięczny za rzucenie kilku keywordów (lub wskazówek) zamiast gotowego rozwiązania (IMG:style_emoticons/default/smile.gif)

Moja tabela "katerogie" zawiera (dla maksymalnego uproszczenia) następujące pola
id - identyfikujące daną kategorię
name - wiadomo
order - w celu określenia "customowej" kolejności kategorii

W Panelu Administracyjnym mam wylistowane wszystkie kategorie, posortowane według pola order. W każdym wierszu z kategorią znajdują się też 2 strzałki (do prostego przemieszczania kategorii w górę/w dół).

Moje pytania są następujące:
- jak najprościej (np. bez używania funkcji MAX() dodać nową kategorię o "najstarszej" kolejności ?
- jak usunąć kategorię tak, by nie została luka (np. order po usunięciu kilku kategorii wygląda tak: 0, 7, 8, 9, 13)
- jak najprościej (przy pomocy wyżej wymienionych "strzałek") zamienić 2 kategorie miejscami (zakładam, że order ma klucz UNIQUE) ?
- linijkę wyżej zamieniam miejscami dwie kategorie, które leżą obok siebie. jak się ma sytuacja w przypadku, gdy chcę przesunąć kategorię np. z pozycji 2 na zajętą pozycję 10, tak aby reszta się ładnie poukładała ?
- czy istnieje lepszy sposób na zaprojektowanie tego niż wyżej przedstawiony ?

Dodam, że istnieje także druga tabela z podkategoriami, w której każdy element ma przypisanego rodzica i swoją kolejność w obrębie danej nadkategorii.

Pozdrawiam i z góry dziękuję za wszelką pomoc,
Nivelis

Ten post edytował Nivelis 20.01.2014, 11:31:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Nivelis
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 10.11.2013

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


Pozwolę sobie kontynuować wątek, gdyż mam wątpliwości.
Moja struktura teraz wygląda tak:

- identyfikator
- identyfikator rodzica
- nazwa
- liczba porządkowa

W tym momencie dane się mieszają, kategoria od subkategorii jest rozróżniana jedynie tym, że identyfikator rodzica w pierwszym przypadku ma wartość NULL.
Dane się mieszają, trzeba je dodatkowo rozdzielać, żeby wykonać jakąś operację przykładowo tylko na kategoriach głównych i jest ogólny chaos.
Na pewno powinno to tak być? Jaki jest sens upychania tego do jednej tabeli nawet jeśli dane są do siebie podobne?
Drzewo sięga tylko jednego potomka, nie będzie bardziej zagnieżdżone (subkategoria nie może mieć kolejnych subkategorii).

Byłbym wdzięczny jakby ktoś jeszcze się wypowiedział (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 29.12.2025 - 07:30