Autor | Zpráva | ||
---|---|---|---|
maks Profil |
Ahoj,
rád bych se zeptal, jak ukládat do DB novou pozici prvků, když použiju na stránce drag&drop menu. Dosud jsem používal jen PHP změnu pozice - o 1 pozici nahoru/dolu. Jde mi o to, že změn může být při D&D dost; při jednom uložení třeba všechny položky změní pozici. Jak to uložit do DB co nejšetrněji a nejrychleji? Děkuji. Moderátor Joker: Upravil jsem titulek, D&D se běžně používá pro Dungeons&Dragons :-)
|
||
Nox Profil |
#2 · Zasláno: 3. 2. 2010, 09:22:23
maks:
Nechápu "nejšetrněji"...ale šlo by použít MEMORY storage engine (volí se při tvorbě tabulky), tabulka je pak uložena v paměti a práce s ní je extrémně rychlá. Nevýhoda je ta, že při restartu serveru se všechna data smažou.... což v případě pozicování menu není nic tragického (příp. můžeš mít 2. tabulku ne-MEMORY kam budeš ukládat třeba CRONem na konci dne) |
||
maks Profil |
#3 · Zasláno: 3. 2. 2010, 09:25:51
Nox:
„Nechápu "nejšetrněji"“ myslel jsem to tak, aby to uživatele příliš nerušilo -> nejrychleji :o) Šlo mi hlavně o to, jak postavit dotaz na UPDATE pozice - napadl mě jen cyklus, kde by měla každá položka jeden sql update, což je nesmysl (z hlediska rychlosti). Je třeba brát v úvahu třeba 200položek (3-úrovňové menu) a cyklus vyvojávající 200 update dotazů není to pravé ořechové. |
||
Nox Profil |
#4 · Zasláno: 3. 2. 2010, 09:40:48
maks:
Když bych to vzal extra pragmaticky, tak co tlačítko "uložit"? :) A jinak... netuším jak máš data v tabulce, takže dotaz nevim, každopádně cykly s SQL to je dost zabiják rychlosti, takže nejlíp do jednoho |
||
maks Profil |
#5 · Zasláno: 3. 2. 2010, 09:54:37
Nox:
„Když bych to vzal extra pragmaticky, tak co tlačítko "uložit"? :)“ jasně, že tam bude tlačítko uložit, ale co se stane po něm? Nevím, jak postavit dotaz. „aždopádně cykly s SQL to je dost zabiják rychlosti, takže nejlíp do jednoho“ něco takového mám v plánu, ale kdbych věděl, jak, neptám se :o) v tabulce je pro zjednodušení jen ID, POZICE. Dejme tomu, že na stránce pomocí D&D zpřeházím položky, že bude pořadí následující: Původní pořadí: ID | POZICE 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Nové pořadí ID | POZICE 1 3 2 7 3 2 4 5 5 1 6 4 7 6 Takto to zpřeházím, stisknu uložit a... ... SQL dotaz bude... ... to už nevím :o) Díky |
||
Nox Profil |
#6 · Zasláno: 3. 2. 2010, 10:05:33
|
||
maks Profil |
#7 · Zasláno: 3. 2. 2010, 10:34:40
Nox:
děkuji, to by mohlo být ono. Vyzkouším. |
||
Časová prodleva: 13 let
|
0