Existuje nejaká efektívnejšia cesta nastaviteľného poradia okrem dodatočného stĺpcu s poradím a nutnosťou ho celý cyklicky aktualizovať pri jedinej zmene?
Či na toto nemá MySQL niečo vstavané, lebo mi to príde dosť výkonovo náročné, hlavne pri veľkých množstvách údajov... snažil som sa hladať, ale vždy som našiel niečo, čo už malo nejaký pevný kľúč (dátum a tak) a dotyčný iba nevedel o ORDER BY. Pýtam sa preto, lebo som ešte nikdy niečo také neriešil.
Konkrétnejšie mám určitý počet prvkov, ktorých poradie môžem ľubovolne meniť ich posúvaním pomocou jQuery UI sortable. Mne ide o ten následný zápis do databázy.
Momentálne to riešim tak, že pri akejkoľvek zmene poradie zaznamenám a prvky dám do pola v zmenenom poradí s ich príslušným ID. Z toho vyjde vpodstate niečo také: prvok[]=1&prvok[]=2...prvok[]={id}
V PHP toto pole spracujem a cez foreach tak postupne každému prvku pridelím cez UPDATE jeho poradie v MySQL do stĺpcu s poradím.
#3Lordest
toto asi nepůjde řešit jinak, než jedním extra sloupcem. Ale stále ukládat do DB také není nejlepší způsob. Raději bych to ukládal do cookies, nebo tak... Záleží na tom, co od toho chceš.
#6Curo
nj, myslel som si, že to inak asi nepôjde, ale príde mi tých UPDATEov príliš veľa pri jedinej zmene... no keď to bude na pozadí, malo by to byť vpohode...
#8Curo
Ako si povedal, neviem, či by implementácia tohto postupu ušetrila toľko výkonu, aby sa oplatila robiť.. pretože ušetrí iba pár príkazov mimo rozsah tej zmeny, teda niečo také:
Teda v tomto prípade by ušetrila iba jeden príkaz, keďže štvorka by ostala na mieste... Samozrejme v prípade väčšieho množstva údajov by to bolo viac, ale tých prvkov nebude viac než tých pár desiatok.. ale ďakujem za tip, možno to uplatním ;)
#9z_moravec
Presne nad niečím takým som sa zamýšlal a hľadal spôsob ako to spraviť, ale ako čítam, tak z toho vyplýva, že to je pomalšie ako normálny spôsob použitia viacerých príkazov za sebou, i keď sa k nim rýchlosťou blíži a že to je iba experiment hľadajúci alternatívu, no taktiež ďakujem za tip...