From Nova Wiki

Nova: UserInputIndex

API userinput

UserInputIndex - API индексации данных

API UserInputIndex позволяет строить выборки из базы записей UserInput по заданным элементам сохраненных данных. (Поскольку при сохранении данных UserInput в базу они сериализуются, обычными средствами SQL и БД это сделать бывает либо неэффективно либо вообще проблематично.)
UserInputIndex - это специальный обработчик, включающийся при сохранении записи в базу, который дублирует (и опционально обрабатывает) заданные значения полей в одну из вспомогательных таблиц.
Поля вспомогательной таблицы примерно таковы:

Эти значения могут быть использованы затем для быстрой выборки из базы стандартными средствами реляционной базы: LEFT JOIN, RIGHT JOIN и т.д. Например, sql запрос, выбирающий все записи у которых поле data['foo'] равно "bar" может быть таким:

select * from userinput LEFT JOIN userinput_index_string as foo ON (userinput.userinput_id=foo.userinput_id AND foo.field_id=$field_id)
WHERE foo.value="bar"

Здесь $field_id - ИД индекса. Каждый UserInputIndex имеет запись в таблице userinput_index_fields и свой уникальный ИД. Также эта запись хранит название индекса, ключ ветки UserInput к которой он относится, а также perl_regexp выражения управляющие применением индекса к записям.

Retrieved from http://wiki.nova-cmf.cv.ua/index.php?n=Nova.UserInputIndex
Page last modified on February 02, 2012, at 03:10 PM EST