Обновить таблицу MySQl на Drop? - PullRequest
2 голосов
/ 11 июня 2010

Я пишу приложение PHP / MySQL (используя CodeIgniter), которое использует некоторые функции jQuery для перетаскивания строк таблицы.У меня есть таблица, в которой пользователь может перетаскивать строки в нужном порядке (вид очереди, для которой мне нужно сохранить ранг каждой строки).Я пытался выяснить, как (и должен ли я) обновлять базу данных каждый раз, когда пользователь отбрасывает строку, чтобы упростить пользовательский интерфейс и избежать нажатия кнопки «Сохранить».

У меня естьjQuery работает и может отправить сериализованный список обратно на сервер onDrop, но разве это хорошая практика проектирования, чтобы часто запускать запрос на обновление?Таблица обычно имеет максимум 30-40 строк, но если пользователь перетаскивает строку 1 далеко вниз по списку, то, возможно, потребуется обновить все строки, чтобы обновить поле ранга.

Мне было интересно, отправлять ли гигантский запрос на сервер, циклически проходить по строкам в PHP и обновлять каждую строку собственным запросом на обновление, отправлять небольшой сериализованный список в хранимую процедуру, чтобысервер выполняет всю работу, или, возможно, лучший метод, который я не рассматривал.Я читал, что хранимые процедуры в MySQL не очень эффективны и используют отдельный процесс для каждого вызова.Любой совет относительно правильного решения здесь?Большое спасибо за вашу помощь!

1 Ответ

1 голос
/ 11 июня 2010

Любой вопрос, который включает в себя «Таблица обычно имеет максимум 30-40 строк», заканчивается «Делай, что хочешь».Я не могу себе представить операцию, как бы часто она ни выполнялась, которая могла бы оказать какое-либо заметное влияние на производительность крошечной таблицы.

Единственный реальный вопрос - что посетитель будет делать, пока ваш запрос будетвозвращаясь с сервера.Будут ли они заблокированы от внесения других изменений?Если нет, убедитесь, что у вас есть механизм, гарантирующий, что самое последнее изменение действительно вступит в силу.(Возможно, запросы поступают на сервер не по порядку, и вы не хотите, чтобы устаревший запрос сохранялся как конечное состояние.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...