2012-02-07 3 views
1

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

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

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

Нечто подобное ?:

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

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

+0

Привет, сообщите нам, если вы сузили подход. :-) – user942640

ответ

0

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

+0

Я мог бы это сделать, но это не помогло бы мне сохранить список отсортированным по приоритету. Я бы сэкономил время на вставку, но трачу больше времени на поиск. Когда событие (скажем, с приоритетом 5) должно выполнить, я должен посмотреть события с приоритетом 0,1,2,3,4 в случае их конфликта. Я бы предпочел сделать дорогостоящий вид каждый раз, когда я вставляю, чем выполнять дорогостоящий поиск каждый раз, когда я ищу конфликт. Я буду искать чаще. – Garzahd

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