У меня есть статьи на моем сайте, и я хотел бы добавить теги, которые описывают каждую статью, но у меня проблемы с дизайном таблицы mysql для тегов. У меня есть две идеи:
- каждая статья будет иметь поле «теги», а теги будут иметь формат: «тег1, тег2, тег3»
- создать другую таблицу под названием теги с полями: tag_name, article_id
Поэтому, когда я хочу теги для статьи с идентификатором 1, я запускаю
SELECT ... FROM tags WHERE `article_id`=1;
Но я также хотел бы узнать 3 наиболее похожих статьи, сравнивая теги, поэтому, если у меня есть статья с тегами "php, mysql, erlang" и 5 статей с тегами: "php, mysql", "erlang, ruby "," php erlang "," mysql, erlang, javascript ", я бы выбрал 1., 3. и 4., так как эти 3 имеют большинство одинаковых тегов с основной статьей.
Также другой вопрос, как лучше всего получить 10 «наиболее часто используемых тегов»?