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

Как реализовать в MySQL топики форума, которые участвуют сразу в нескольких разделах?

Обычно каждая новая тема (топик) на форуме относится к одному разделу форума. Но иногда необходимо добавить несколько тегов, чтобы по ним можно было искать эту тему на форуме. Чтобы не вводить дополнительную сущность - теги - хочется реализовать возможность создавать тему сразу в нескольких разделах (сам интерфейс добавления разделов при создании темы пока не важен). Фактически тут теговая система получается, но в отличие от тегов, все разделы заранее известны - новые не добавляются пользователем, а также раздел будет всегда (тегов иногда может не быть). Вопрос такой: можно ли использовать какую-то иную структуры таблицы, чтобы не делать список тегов и таблицу где прописывается соотетветствие темы (топика) каждому тегу? То есть все уложить в одну таблицу, а не в три? Мне почему-то кажется, что 'поиск Fulltext' должен подойти для такой задачи, либо что-то подобное, так как в одном поле таблицы можно просто добавлять обозначения раздела: численное или текстовое, например через запятую или пробел. Нужно, чтобы можно было быстро находить все темы (топики) для одного заданного раздела (искать тему, которая относится сразу к двум и более разделам не нужно).
Как такое реализовать максимально просто? Какую структуру таблицы использовать?
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой Комментировать
Ответ пользователя Antonio Solo К ответам на вопрос (3)
solotony
@solotony
покоряю пик Балмера
если количество разделов постоянное и небольшое (т.е не будет проблем с индексами) то можете для каждого раздела завести отдельное BOOL поле в таблице

но это конечно изврат и единственное нормальное решение - это M2M (использование таблицы).

а Fulltext по своей сути это такое-же создание M2M индекса, только скрытое с недрах mysql
Ответ написан