я не берусь утверждать, но вообще у вас странный запрос, первый. Таблицу catagory вы джоините с object, но при джоина как такового у вас нет - выполняется полнотекстовый поиск. Я бы написал так
select `id` FROM `object` obj, `category` cat, `obj2cat` obj2
where obj.`id` = obj2.`obj` and obj2.`cat` = cat.`tid`
and MATCH(cat.`title`) AGAINST (?)
а в итоге получилось бы так:
select `id` FROM `object` obj, `category` cat, `obj2cat` obj2
where obj.`id` = obj2.`obj` and obj2.`cat` = cat.`tid`
and (
MATCH(cat.`title`) AGAINST (?)
or
match(obj.title`) against(?)
)
Борис Беньковский: Все зависит от задачи. Возможно в вашем случае парсинг - это не вариант. У человека нет доступа к базе данных, что бы получать данные товара от туда. В таком случае выбирать не приходится.
Парсинг сайта вполне приемлемое решение. Если кол-во товаров велико, то требования к парсеру конечно возрастают, т.к. более критичным становится время отклика, но тем не менее это вполне приемлемое решение, тем более если нет другого варианта. Приходилось парсить сайт партнера где было около 20000 товарных позиций, решение всех устроило и используется уже больше года.
select `id` FROM `object` obj, `category` cat, `obj2cat` obj2
where obj.`id` = obj2.`obj` and obj2.`cat` = cat.`tid`
and MATCH(cat.`title`) AGAINST (?)
а в итоге получилось бы так:
select `id` FROM `object` obj, `category` cat, `obj2cat` obj2
where obj.`id` = obj2.`obj` and obj2.`cat` = cat.`tid`
and (
MATCH(cat.`title`) AGAINST (?)
or
match(obj.title`) against(?)
)