Как мне реализовать уникальное поле приоритета в моей базе данных? - PullRequest
1 голос
/ 07 февраля 2012

Я создаю базу данных для объектов событий, каждое событие имеет приоритет (длинный), который является уникальным.Объекты с более низкими значениями приоритета предпочтительнее, более новым объектам изначально назначаются более высокие и более высокие приоритеты по мере увеличения количества объектов, но пользователь может переназначать приоритеты по своему желанию.

Мой вопрос заключается в том, должен ли я использовать только _ID в качестве поля приоритета?Я полагаю, что таким образом, когда я выбираю их и помещаю их в свой ArrayList в Java, мои события уже будут отсортированы по приоритетам от высокого к низкому, что избавит меня от необходимости искать.И в зависимости от того, какие алгоритмы SQLite фактически использует выбор по приоритету, может быть быстрее, так как это также индекс.Я новичок в SQL, и все это кажется мне хорошо, но может быть некоторый недостаток, который очевиден для более опытного.

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

Как-то так?:

UPDATE event_table SET priority = priority + 1 WHERE priority > ?

PS: я делаю это на Android 2.2 в SQLite 3

1 Ответ

0 голосов
/ 07 февраля 2012

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

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