Nastaviteľné poradie – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nastaviteľné poradie – MySQL – Fórum – Programujte.comNastaviteľné poradie – MySQL – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Lordest0
Super člen
10. 7. 2011   #1
-
0
-

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.

Ďakujem vopred za odpovede

Nahlásit jako SPAM
IP: 85.216.240.–
Curo
~ Šéfredaktor
+8
Hero
10. 7. 2011   #2
-
0
-

#1 Lordest
Zkus pls upřesnit svůj svůj dotaz, moc jsem jej nepochopil :).

Nahlásit jako SPAM
IP: 109.164.4.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Lordest0
Super člen
10. 7. 2011   #3
-
0
-

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.

<ul id="prvky">
	<li id="prvok_1">Prvok 1</li>
	<li id="prvok_2">Prvok 2</li>
	...
	<li id="prvok_{id}">Prvok {poradové číslo}</li>
</ul>

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.

Nahlásit jako SPAM
IP: 85.216.240.–
crazy
~ Moderátor
+10
Grafoman
10. 7. 2011   #4
-
0
-

#3 Lordest
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š.

Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
z_moravec
~ Redaktor
+3
Posthunter
10. 7. 2011   #5
-
0
-

#3 Lordest
Pokud není těch prvků obrovské množství, tak bude asi nejjednodušší to nechat, jak to je.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Curo
~ Šéfredaktor
+8
Hero
10. 7. 2011   #6
-
0
-

#3 Lordest
Proti tomuto způsobu použití nic nemám, je to normální řešení. Nějak to pořadí zaznamenávat musíš :-).

|-prvek-|-poradi-|
|-prvek1-|-1-|

... order by poradi
Nahlásit jako SPAM
IP: 109.164.4.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Lordest0
Super člen
10. 7. 2011   #7
-
0
-

#4 crazy
to je pravda, ale tie prvky tak bude ukazovať všetkým.. a tlačítko uložiť zmeny tam proste nechcem mať...

#5 z_moravec
nemalo by ich byť cez 20-30...

#6 Curo
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...

ďakujem za odpovede 

Nahlásit jako SPAM
IP: 85.216.240.–
Curo
~ Šéfredaktor
+8
Hero
10. 7. 2011   #8
-
0
-

#7 Lordest
Já bych vždy updatoval jen pořadí u řádků, kterých se změna týká.

---------
1 - ahoj
2 - čau
3 - dobrý den
4 - tě pic
---------

Změníme na

---------
1 - ahoj
2 - čau
3 - tě pic
4 - dobrý den
---------

Tak bych provedl update pouze na řádek 3 a 4, kdy prohodím pořadí ve sloupci poradi. Tím eliminuješ počet dotazů na update.

Má to však smysl jen tehdy, jak psal z_moravec, když máš položek více než pár desítek a změna je prováděna častěji, než jednou do hodiny.

Nahlásit jako SPAM
IP: 109.164.4.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
z_moravec
~ Redaktor
+3
Posthunter
10. 7. 2011   #9
-
0
-
Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Lordest0
Super člen
11. 7. 2011   #10
-
0
-

#8 Curo
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é:

---------
1 - ahoj
2 - čau
3 - dobrý den
4 - tě pic
---------

---------
1(2) - čau
2(3) - dobrý den
3(1) - ahoj
4 - tě pic
---------

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 ;)

#9 z_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...

Nahlásit jako SPAM
IP: 95.102.58.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Poradie z DB — založil Anonymní uživatel

Poradie vystupu — založil h4ck3r1

Poradie riadkov — založil m.czech

Poradie v tabulke — založil hudi

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý