2015-12-27 4 views
0

Работа с простым приложением todo, которое позволяет пользователям сортировать задачи вручную. Это довольно просто реализовать модель, основанную на LinkedList в Java.Пользователь предоставил сортировку по SQL

Однако, если я хочу сохранить отсортированные задачи в реляционной базе данных, мне придется добавить новый столбец, который предоставляет индекс, с помощью которого я могу сортировать задачи.

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

+0

Это всего лишь данные. Поместите его в базу данных. Вы можете использовать упорядоченные индексы, чтобы помочь минимизировать усилия dbms. См. Ответы по ссылке выше, * первый хит google моего первого поиска * в 'отсортированном списке stackoverflow sql'. – philipxy

ответ

1

Вы не должны размещать информацию пользовательского интерфейса в своих бизнес-данных. Вам лучше создать таблицу ui_preferences и сохранить там информацию. Затем вам нужно получить информацию перед запросом своих бизнес-данных. Вы также можете сохранить эту информацию в хранилище cookie/сессии в своем браузере, но, возможно, это не соответствует вашим требованиям.

0

Вы можете использовать отдельную таблицу с парами (task_id, index).

Смежные вопросы