Фильтрация браузера и индексы

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Фильтрация браузера и индексы

Сообщение Алексей »

Есть своя таблица под документы. В документе допустим есть:
дата, дескриптор, группа дескриптора и ещё 4 поля...

По всем этим полям нужно сделать фильтрацию, как в накладных по Alt+b.
При чем фильтры накладывать я могу в произвольном порядке, т.к. группу с третьим полем, или дату со вторым.

Как нужно прописать индексы в своей таблице, чтобы обрабатывать фильтры через bounds, а не через condition?

Т.к. при комбинировании двух полей сразу вылетает ошибка, что такого индекса, допустим Группа и дата нет... неужели надо предусмотреть все варианты?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

Ну да... если все варианты , задаваемые в диалоге на фильтр, хотите обрабатывать по индексам, то все варианты. Хотя может быть удовлетворит вариант index на один фильтр + condition.
Т.е. 7 индексов + 7 кондишинов
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

индексы нужно предусмотреть по каждому полю чтобы было на 1 месте,
то есть 4. А дальше вариации чтобы задать сортировку.
Дополнительные условия можно прописать в отдельных bounds с (noindex).
Тыды при обработке очередной галки проверяете не наложен ли еще главный индекс, если нет, то накладываете индексное условие по этому полю, если нет через AddBounds добавляете безиндексное. Не забудьте сбросить все условия пред обработкой фильтров (if boundsactive .. subbounds ).
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Сообщение Алексей »

В приниципе решил сделать так:
Индекс сделал по датам, если галочка на дату ставится - то накладываем bounds по датам. Остальные поля по кондишнами. По скорости кондишн и bounds c noindex одинаково будут отрабатывать при большом объеме данных? По сути ноиндекс - то же условие... или я не прав?
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

condition - отрабатывает на клиенте
noindex - на сервере

... хотя особой разницы не замечал. Надо будет специально потестировать...)
Ответить