Witam serdecznie,
mam skrycik do przeciągania wierszy w tabli, ale chciałbym zrobić aby dane się zapisywały.
I tu pojawiają się schody, chciałbym to zrobić jak najbardziej optymalne:
mój znajomy wymyślił 3 opcje:
- w bazie danych wszystkie pozycje są numerowane po kolei od 1 do n. Przy zamianie pozycji np. z 5 na 2 wykonują się dwa zapytania – pierwsze ustawia order=2 do przesuwanej pozycji, a drugie zapytanie ustawia order=order+1 where order>=2 and order<5
minusem takiego rozwiązania jest to, że przy dodawaniu i usuwaniu trzeba pilnować, żeby kolejność się zawsze zgadzała i nie było pustych pozycji
- przy sortowaniu przesyłane są nowe pozycje wszystkich rekordów (masa zapytań przy większej ilości rekordów)
- w bazie danych do każdej nowej strony przydzielany jest kolejny, unikalny order, ale za każdym razem większy od poprzedniego (np. time()). Przy sortowaniu przesyłana jest informacja o id elementu przesyłanego i o ile pozycji w którą stronę się przesunął.
Po stronie serwera przy sortowaniu wykonywane są zamiany sąsiadujących orderów.
Ilość zapytań przy sortowaniu też dość znaczna, ale zależy od tego o ile pozycji przesuwa się stronę.
Mnie natomiast nie satysfakcjonuje żadne rozwiązanie :-)
Potrezbuje czegoś naprawdę optymalnego, aby nie zawalało serwera itp.
Czy ktoś z kolegów programistów ma jakiś pomysł.
Przykład takiego skryptu: http://www.isocra.com/2008/02/table-drag-a...-jquery-plugin/
Mój skrypt jest pisany od podstaw ale to tylko przykład aby wiadomo było o czym mówię :-)
Czekam na każdy pomysł.
Z góry dziękuje i pozdrawiam.