Я должны сделать функцию поиска, когда пользователь выполняет поиск тегов, которые прилагаются к различным статьям, как: ПК, здоровье, мода одежда ... и т.д. Моя текущая таблица выглядит так:повторного использования ключевых слов для поиска
Tag_id | Tag | Article_id
-----------------------------------
1 | scary | 2
-----------------------------------
2 | daunting | 2
-----------------------------------
3 | chilling | 2
-----------------------------------
4 | creepy | 2
-----------------------------------
5 | scary | 5
-----------------------------------
6 | daunting | 5
-----------------------------------
7 | chilling | 5
-----------------------------------
8 | creepy | 5
Как вы можете видеть, существуют синонимы для каждого тега, которые необходимо повторять в каждой статье, содержащей одни и те же теги. Мой вопрос заключается в следующем: какая структура таблицы позволит повторять использование тегов (без повторных тегов) и в то же время не поиск дружественных. (Нормальный тезауруса не может быть использован, так как теги-то короткие фразы и сленг)
Основная структура LEFT JOIN с тремя таблицами: 'articles',' tags' и 'article_tags'. И я бы добавил столбец 'alias_of_tag_id' в вашу текущую таблицу, чтобы легко найти ссылки для псевдонимов тегов для данного тега. Короче говоря, это базовый дизайн SQL. Вы можете попробовать прочитать книгу на нем, прежде чем приступить к работе с ней :) – rdlowrey
этой структуре таблицы по-прежнему требуется связать каждый тег (и синонимы) со своей статьей в таблице article_tags, чего я не хочу (извините, если я wasn ' t достаточно точно). Я думал больше о чем-то, где каждой статье был назначен основной тег (наиболее часто используемое слово), на который будут ссылаться его синонимы ... – user1382785
Просто используйте предложение столбца 'alias_of_tag_id'. Если вы на 100% уверены, что никогда не хотите разрешать несколько ассоциаций тегов с одной статьей (возможно, это не очень хорошая идея), просто добавьте столбец 'tag_id' в таблицу' articles' и устраните таблицу ссылок. Как я уже сказал, это довольно простые базовые концепции проектирования баз данных. Я бы рекомендовал сделать некоторые чтения по технологии, прежде чем использовать ее :) – rdlowrey