Всем привет. Есть задача: обеспечить возможность сортировки объектов пользователями. (т.е. на странице есть некий список и пользователь drag-n-drop`ом его сортирует как ему нужно)
Сложность возникает в тот момент, когда нужно эту сортировку сохранить в базе данных.
У меня есть 2 варианта:
1) У каждого списка создать поле, в котором упорядоченно хранить список id элементов списка.
2) У каждого элемента создать поле weight и по этому полю сортировать выборку
А теперь представьте:
* элемент 1
* элемент 2
* элемент 3
...
* элемент 10000
Количество элементов никак не ограничено.
При использовании 1 варианта: представьте поле, в котором будет храниться список из тысяч элементов. Теряется весь смысл базы данных. Да и сортировать всю выборку по такому массиву будет не удобно.
При использование 2 варианта: если сдвигается хоть один элемент, значение weight придется перезаписывать для всех последующих. Даже если указывать weight с некоторым шагом (например 10), рано или поздно придется пересчитывать для всего списка.
Собственно, вопрос: как лучше организовать упорядоченное хранение объектов?
Похожие темы
- Форум странное поведение gtk_combo_box_insert_text (2012)
- Форум Архитектура демона на питоне и общение с ним (2014)
- Форум Вставка новых данных в середину большого файла. Как поведет себя ФС? (2007)
- Форум [gui][don't look back] Списки. Списки файлов и множество велосипедов. (2009)
- Новости Krita 4.0 (2018)
- Форум [python] Сортировка списка объектов по функции сравнения «больше чем» (2010)
- Форум Сортировка записей (2013)
- Форум Количество объектов, ссылающихся на объект (2012)
- Форум Помогите придумать алгоритм нотификации об изменениях в чатике/треде (2021)
- Форум Сортировка точек (2012)