Страница 1 из 1

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

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

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

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

Т.к. при комбинировании двух полей сразу вылетает ошибка, что такого индекса, допустим Группа и дата нет... неужели надо предусмотреть все варианты?

Добавлено: 27 май 2008, 09:30
Den
Ну да... если все варианты , задаваемые в диалоге на фильтр, хотите обрабатывать по индексам, то все варианты. Хотя может быть удовлетворит вариант index на один фильтр + condition.
Т.е. 7 индексов + 7 кондишинов

Добавлено: 27 май 2008, 09:35
edward_K
индексы нужно предусмотреть по каждому полю чтобы было на 1 месте,
то есть 4. А дальше вариации чтобы задать сортировку.
Дополнительные условия можно прописать в отдельных bounds с (noindex).
Тыды при обработке очередной галки проверяете не наложен ли еще главный индекс, если нет, то накладываете индексное условие по этому полю, если нет через AddBounds добавляете безиндексное. Не забудьте сбросить все условия пред обработкой фильтров (if boundsactive .. subbounds ).

Добавлено: 27 май 2008, 09:42
Алексей
В приниципе решил сделать так:
Индекс сделал по датам, если галочка на дату ставится - то накладываем bounds по датам. Остальные поля по кондишнами. По скорости кондишн и bounds c noindex одинаково будут отрабатывать при большом объеме данных? По сути ноиндекс - то же условие... или я не прав?

Добавлено: 27 май 2008, 09:57
Den
condition - отрабатывает на клиенте
noindex - на сервере

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