main

Опять про базу

При попытке переделать схему БД под использование полнотекстового поиска, наткнулся на замечательные грабли.

Что есть этот поиск? По сути ещё несколько индексов для таблицы. Но только не в sqlite! Там под это дело используется отдельный вид таблицы - виртуальная.

Самая печаль в том, что для неё не работают ни индексы на колонках кроме rowid, ни внешние ключи. Поэтому, как не меняй схему, что-нибудь да отвалится. Либо поиск, либо хрен вам, а не ускорение выборки по директории.

На две таблицы побить - опять же, не работают ключи. За целостностью базы следить - только вручную. Впрочем, для несложных случаев народ изъёбывается через триггеры, но это жуткий костыль.