я не могу себе представить что такое "одноуровневое дерево" :)
Misha v.3 15.06.2005 13:08
и продолжаю считать что вы решили пойти неверной дорогой.
вместо того, чтобы структурировать данные на одном уровне вы делаете это на нескольких, т.е. все усложняете.
WHERE big_field like "%<adr%>%Ленина%</adr%>%"
не будет работать например на такой структуре:
<adr>Маркса 666</adr>
<post-adr>Ленина 44</post-adr>
<adr>Энгельса 13</adr>
к чему это я? к тому, что вы или вынуждены будете писать rlike и искать нормальными регулярными выражениями (т.е. забудьте про индексы в любом их проявлении) или вводить дополнительную типизацию вашего xml-я. т.е. это должен будет быть не просто валидный xml но и xml удовлетворяющий определенным критериям.
при тех исключениях, о которых я говорил выше, возможно хранить "структуры" в одном поле, но вы от этих исключений ушли.
к слову замечу, что получаемый "движок" не есть универсальный. для больших струкрут он не годится в принципе, т.к. как только вы (или тот, кто будет пользоваться им и не знать специфики) захотите сделать первый поиск - все ляжет.
мне кажется более прямым путь, когда разные данные разнесены в разные поля. для унификации "движка" список полей может храниться отдельно (файл, БД, xml - не важно, можно с комментариями если вы забываете какое поле что означает), и инсталяция "движка" подразумевает
разовую процедуру создания таблиц/нужных индексов, при этом типовая его инсталяция уже имеет поля, необходимые в большинстве случаев.