powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение order-а записей
5 сообщений из 5, страница 1 из 1
Хранение order-а записей
    #34171051
Kirill Nabokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли какие-либо известные способы для хранения порядка записей (запись - информация о файле).

Например есть база из 100k записей. Все записи выводятся в ListView.
Я хочу чтобы последние 10 файлов выводились в середине, т.е. поменять порядок записей.
- Если делать это физическим перемещением записей в базе, то на это уйдет уйма времени.
- Сделать для этого отдельный индекс - быстрее, но все равно медленно.
- В каждой записе хранить индекс предыдущего и последующего записей. Здесь траблы: 1. если какой-нибудь сбой программы/базы данных, то может потеряться цепочка order-a. 2. Если данные выводятся постепенно - то будет "мельтешение" ListView. 3. Ручное упорядочивание списка.

Может уже есть готовые алгоритмы, решения, подскажите пожалуйста.
...
Рейтинг: 0 / 0
Хранение order-а записей
    #34171567
SQLHelper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Держим в таблице поле N, каждую вставку делать так:
Код: plaintext
1.
2.
3.
select @nextN = isnull(max(N),  0 ) +  1  from Table
insert into Table (...,N)
values (...,@nextN)
...
Рейтинг: 0 / 0
Хранение order-а записей
    #34173780
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill NabokovЕсть ли какие-либо известные способы для хранения порядка записей (запись - информация о файле).

Например есть база из 100k записей. Все записи выводятся в ListView.
Я хочу чтобы последние 10 файлов выводились в середине, т.е. поменять порядок записей.
- Если делать это физическим перемещением записей в базе, то на это уйдет уйма времени.
- Сделать для этого отдельный индекс - быстрее, но все равно медленно.
- В каждой записе хранить индекс предыдущего и последующего записей. Здесь траблы: 1. если какой-нибудь сбой программы/базы данных, то может потеряться цепочка order-a. 2. Если данные выводятся постепенно - то будет "мельтешение" ListView. 3. Ручное упорядочивание списка.

Может уже есть готовые алгоритмы, решения, подскажите пожалуйста.
Неужели такое простое решение, как выше предложенное, до вас не дошло само собой?????????

-- Tygra's --
Мои фотогалереи тут
...
Рейтинг: 0 / 0
Хранение order-а записей
    #34177905
Kirill Nabokov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quote] Неужели такое простое решение, как выше предложенное, до вас не дошло само собой?????????
[/quote]

Указанный выше алгоритм автоматически нумерует записи, а мне нужно что если пользователь поменял порядок следования записей в ListView я мог бы сохранить этот порядок с базе.

В выше указанном примере будет 1,2,3,4,5 а мне нужно 1,5,2,3,4.
...
Рейтинг: 0 / 0
Хранение order-а записей
    #34178411
Shoora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kirill Nabokov[quote] Неужели такое простое решение, как выше предложенное, до вас не дошло само собой?????????
[/quote]

Указанный выше алгоритм автоматически нумерует записи, а мне нужно что если пользователь поменял порядок следования записей в ListView я мог бы сохранить этот порядок с базе.

В выше указанном примере будет 1,2,3,4,5 а мне нужно 1,5,2,3,4.

Ну так и сохраняй. В чем проблема-то? update ордера для перемещенных записей по событию ListView (медленно) или по кнопке (быстро, но если забыли нажать...). Можешь прикрутить DataGrid с DataSet, там все автоматом будет. Если нужна персонализация (разный ордер для разных пользователей), то на делать многие-ко-многим и ордер в перекрестной таблице.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение order-а записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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