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
nospor
post
Post #2





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




Od pewnego momentu zadajesz pytania niejako na moje odpowiedzi, wiec kontynuuje rozmowe z Toba.

Zas twoj wywod o niepomaganiu jak sie nie chce, dziala rowniez w drugą strone. Skoro wiesz lepiej i nie chcesz pomocy - nie pytaj (IMG:style_emoticons/default/smile.gif)
Wyjasniam ci jak to sie robi. Nie ma sensu tworzyc dwoch identycznych tabel, co ty proponujesz. Tu sie robi jedna tabele i nie ma zadnego chaosu, nie ma zadnego poslizgu z pobieraniem danych i nie ma w ogole z tym zadnego problemu. Zakladasz odpowiednie indeksy i wszystko smiga pieknie.
Poza tym ile ty bedziesz mial tych kategorii? 100? 1000? To zadna liczba dla bazy danych. Nawet jakbys ich mial 1000000 to rowniez to by nie byl zaden problem trzymac je w jednej tabeli.

Ale chyba podziękuję za dyskusję z Tobą bo z niewiadomego mi powodu od samego początku prezentujesz ton wypowiedzi - pytam ale i tak wiem lepiej (IMG:style_emoticons/default/wink.gif)

ps: i wytlumacz mi prosze, ktore moje posty mają ofensywny ton wypowiedzi, bo niezmiernie mnie to interesuje.
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: 28.12.2025 - 07:29