powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Произвольная сортировка
25 сообщений из 27, страница 1 из 2
Произвольная сортировка
    #38939920
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть список. Пользователь делает какой-то дневник на сайте с помощью конструктора. Каждый пункт - отдельная строка в таблице. Хочу дать возможность пользователю перетаскивать мышкой изменяя порядок. В таблице также сортировка должна каким-то образом измениться. Как с найменший нагрузкой на сервер сделать подобную операцию когда например запись из 101 должен быть уже 51, розсунув все следующий после 51 на +1 ? Или как-то по другому может ?....
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939925
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай связный список...
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939936
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как связной список мне может помочь? Это наверное выгодно в случае если бы пользователь переходил с одной страницы на другую. А в одном Select список Where ид_пользователь=тот_кто_смотрит как он будет выводить данные ?
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939939
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

связанный список очень сложно сортировать на sql. не пойдет.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939946
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivАндрей159,
связанный список очень сложно сортировать на sql. не пойдет.
Я тоже об этом. А решение вообще есть простое кроме невыгодных по большой нагрузке на сервер ?
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939967
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавь колонку с цифрой внутри, которая и будет определять порядок сортировки
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38939968
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159MasterZivАндрей159,
связанный список очень сложно сортировать на sql. не пойдет.
Я тоже об этом. А решение вообще есть простое кроме невыгодных по большой нагрузке на сервер ?
там не будет какой то совсем уж большой нагрузки.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940159
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivсвязанный список очень сложно сортировать на sql. не пойдет.Без уточнения как минимум структуры хранения данных фраза не имеет смысла. Потому как на некоторых заведомо ложна.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940165
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaMasterZivсвязанный список очень сложно сортировать на sql. не пойдет.Без уточнения как минимум структуры хранения данных фраза не имеет смысла. Потому как на некоторых заведомо ложна.

так структура связаного списка вполне очевидна.
в каждой записи необязательная ссылка на PK следующей записи.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940190
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это немного не так. Ссылка обязана присутствовать - это верно, но количество таких ссылок и форма реализации могут сильно различаться. Например, nested set тоже является разновидностью связного списка.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940273
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЭто немного не так. Ссылка обязана присутствовать - это верно, но количество таких ссылок и форма реализации могут сильно различаться. Например, nested set тоже является разновидностью связного списка.

ну если бу я имел в виду needed sets, я бы так и написал бы.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940295
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей159,

То есть, у вас есть некая табличка, записи которой имеют внешний ключ на "юзверя" И их надо выводить в определенном порядке. Причем, порядок может изменяться юзверем (его мышкой).

Что смущает в таком решении: Заводите в этой табличке ещё одно поле `order`, в котором тупо, чиселкой прописываем этот порядок. Интерфейс, тупо при изменении порядка после тыка мышкой отправляет запрос (ajax) на сервер и тот также тупо обновляет порядок в табличке для этого юзверя.

Выборка - примитивна, сортировка тоже. Смущает количество ajax-запросов? Ну так сделайте "отложенные" изменения, например по "завершению" действий юзверя (конец сессии) ... или ваще кроном...

... в смысле нафига тут ваще какие-то "связанные списки"? (зачем городить говно-огород) :)
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940318
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109,
начинаем с простого варианта... просто "в лоб"

только доп поле
1. при вставке значение = автоинкремент x 10 (как вариант, можно *2+1)
2. в момент перетаскивания меняете значение "в дырку". Тут же "update по порядку" *10 (*2+1)

как то так, весь вопрос в количестве строк в дневнике. Будет перестроение индекса по этому полю (ну а индекс обязателен...)
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940340
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109... в смысле нафига тут ваще какие-то "связанные списки"? (зачем городить говно-огород) :)
ТС желает иметь возможность хранить порядок сортировки (уже сортированный список) и в любой момент иметь возможность переместить в этом сортированном списке элемент или непрерывный блок элементов в произвольное место.
Решений тут два. Либо хранение "порядка сортировки", либо использование структуры, изначально предназначенной доля выполнения такой операции.
В первом случае имеем простую внешне структуру, но дополнительную процедуру перемещения, производящую "раздвижку" в месте вставки (что в среднем кончается перенумерацией ака пересчёт половины записей). Во втором - при усложнении структуры достаточно простая и, главное, вылизанная толпами программистов процедура перемещения, выполняемая одним запросом.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940363
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov2. в момент перетаскивания меняете значение "в дырку". Тут же "update по порядку" *10 (*2+1)Если использовать для указания порядка сортировки float/double-числа, то "update по порядку" можно отложить, например, на ночь. Или сделать его частичным - локальный (например, в пределах ближайших целых чисел) делать сразу, глобальный (по всей таблице) ночью.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940369
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

я посмотрел на ситуацию со стороны простого пользователя, если он часто "переносит дела" или просто играется с красивым интерфейсом... дырки-окна закончаться после третьего перетаскивания... для надежности все таки лучше делать сразу...
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940373
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovесли он часто "переносит дела" или просто играется с красивым интерфейсом... дырки-окна закончаться после третьего перетаскиванияНе закончатся,
miksoftЕсли использовать для указания порядка сортировки float/double-числа
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940377
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arhat109Андрей159,

То есть, у вас есть некая табличка, записи которой имеют внешний ключ на "юзверя" И их надо выводить в определенном порядке. Причем, порядок может изменяться юзверем (его мышкой).

Что смущает в таком решении: Заводите в этой табличке ещё одно поле `order`, в котором тупо, чиселкой прописываем этот порядок. Интерфейс, тупо при изменении порядка после тыка мышкой отправляет запрос (ajax) на сервер и тот также тупо обновляет порядок в табличке для этого юзверя.

Выборка - примитивна, сортировка тоже. Смущает количество ajax-запросов? Ну так сделайте "отложенные" изменения, например по "завершению" действий юзверя (конец сессии) ... или ваще кроном...

... в смысле нафига тут ваще какие-то "связанные списки"? (зачем городить говно-огород) :)


я согласен с этим постом абсолютно.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940386
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglir,

да, пропустил самый главный смысл
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940394
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tanglirAlex_Ustinovесли он часто "переносит дела" или просто играется с красивым интерфейсом... дырки-окна закончаться после третьего перетаскиванияНе закончатся,
miksoftЕсли использовать для указания порядка сортировки float/double-числаСтрого говоря, тоже могут закончиться. Все-таки разрядность не бесконечная, а в худшем случае может тратиться один двоичный разряд на одну перестановку. Но на большинство случаев этого хватит.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940408
Arhat109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinov,

авторначинаем с простого варианта... просто "в лоб"

только доп поле
1. при вставке значение = автоинкремент x 10 (как вариант, можно *2+1)
2. в момент перетаскивания меняете значение "в дырку". Тут же "update по порядку" *10 (*2+1)

как то так, весь вопрос в количестве строк в дневнике. Будет перестроение индекса по этому полю (ну а индекс обязателен...)

?!? Не, оно конечно, ежели хочется "прибор сломать" можно и так изголяться... только "зачем" ;)

"Интерфейс, тупо при изменении порядка после тыка мышкой отправляет запрос (ajax) на сервер и тот также тупо обновляет порядок в табличке для этого юзверя"

решений 2:
а) тупо(!) отправляем ВЕСЬ список сортировки и обновляем ВСЕ записи этого юзверя... кстати "индекс" на это поле там НЕ нужен ваще-то... нужен индекс на юзверя - он является фильтром, а записи для показу вы выгредаете все одно "все".
В этом случае, пофиг какие там значения. Сортировка локальных записей пользователя может идти и подряд и перенумеровываться "хоть на лету"... выборка по его записям. Всё одно, у вас КАЖДЫЙ юзверь имеет СВОЙ набор элементов меню...

б) вводить сортировку по float/double. Уже обсуждено.

Оптимизация решений - отложенное вычисление для хранений. То есть, пока у вас юзверь играется с сортировкой - все значения берутся ИЗ сессии... или кеша. Как только "наигрался" (сессию/кеш пора удалять) - записываем в БД "последний сохраненный вариант сортировки"... и тоже всё. Действие (реальное) Мускуль выполняет ровно единожды. В конце.
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940434
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftСтрого говоря, тоже могут закончиться.Но не после третьего перетаскивания :)
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940545
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзер - существо творческое и без тормозов. Он от нехрен делать будет с утра до обеда пункты таскать, имитируя бурную деятельность...
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940602
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так понял скриптами нужно делать или заменой в php, а в базе только через запятую сохранить порядок в одном текстовом поле. Иного в голову не приходит
...
Рейтинг: 0 / 0
Произвольная сортировка
    #38940621
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaЮзер - существо творческое и без тормозов. Он от нехрен делать будет с утра до обеда пункты таскать, имитируя бурную деятельность...Ввести оплату каждой перестановки. А за повторение комбинации, которая уже была - лишать премии!
...
Рейтинг: 0 / 0
25 сообщений из 27, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Произвольная сортировка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]