Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Базы Данных > [БД] поиск внутри строки |
Автор: patap 11.5.2011, 15:02 | ||||||||
В общем будет на сайт добавляться категории. Также будет поиск по этим категориям. Пока еще ничего не делал. На начальной стадии разработки решил позаботиться о дальнейшей производительности и гибкости поиска. Вот что надумал: будет две таблицы
Алгоритм работы: при добавлении новой категрии - заносим ее сначала в таблицу groups затем разбиваем и заносим в таблицу separate, по такому принцыпу: (1, 1, 'привет как твои дела'), (2, 1, 'как твои дела'), (3, 1, 'твои дела'), (4, 1, 'дела'), запрос для поиска
как думаете - нормальный вариант? или можно как-то по другому. В общем рад любой критике и советам
|
Автор: ksnk 11.5.2011, 15:46 |
а fulltext index не тем-же самым занимается? Вроде он именно по словам может быстро искать? К тому-же непонятно, с чего хранить имено фразы, а не слова. Так бы и полный индекс можно было иметь, без like'а ![]() |
Автор: patap 12.5.2011, 09:33 |
ksnk, блин, когда-то помню слыхал про fulltext, но я так и не нашел времени разобраться, так оно и забылось. Действительно - это то что нужно, и мудрить ничего не надо. достойный совет! ![]() я решил разбивать на фразы, чтобы можно было найти категорию по запросу "твои дела", т.е. чтобы сразу, в целом виде, подставлять в запрос входную строку WHERE separate.content LIKE 'твои дела%' (1, 1, 'привет как твои дела'), (2, 1, 'как твои дела'), (3, 1, 'твои дела'), (4, 1, 'дела'), |
Автор: srt 9.6.2011, 12:48 |
мысль про разделение правильная, просто не везде применимая в твоём случае нужно просто писать = а не LIKE и всё будет очень шустро работать имхо |