Задать вопрос
yurygolikov
@yurygolikov

Можно ли создать в MySql 5.7 составной индекс на поля из разных таблиц, если нет, то как подобное лучше всего организовать?

Опишу элементарный пример:
1. Есть таблица - товар (id, id_бренд_товара, описание_товара)
2. Есть таблица - бренд_товара(id, имя_бренда)
2-ая таблица является справочником для первой, связь один ко многим.

Как мне в данном случае сделать полнотекстовый поиск? Я так понимаю нельзя навесить FULLTEXT INDEX на поля из разных таблиц (товар.описание_товара и бренд_товара.имя_бренда). Как тогда поступить, все таки хранить значения 2-ой таблицы в первой, сделать отдельные индексы или есть еще какой то способ?

Скорее всего я что то упускаю или не понимаю. Прошу не пинать в проектировании DB - новичок.

Спасибо за ответы!
  • Вопрос задан
  • 320 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Как-то странно у вас база организована. Зачем бренд ссылается на товар? И каким образом это выглядит, когда под одним брендом несколько товаров? По уму это у товара должно быть поле id_бренда.
А проблема ваша решается, например, так:
SELECT *
  FROM `items` 
  WHERE MATCH (`name`) AGAINST :searchString
    OR `brand_id` IN (SELECT `id` FROM `brands` WHERE MATCH (`name`) AGAINST :searchString)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы