Я работаю над проектом, в котором у меня есть следующие (отредактированные) структуры таблиц: (MySQL)
Blog
id
title
description
Episode
id
title
description
Tag
id
text
Идея состоит в том, что теги можно применять к любому блогу или эпизоду (и кдругие типы источников), новые теги могут быть созданы пользователем, если он еще не существует в таблице тегов.
Цель тегов состоит в том, что пользователь сможет осуществлять поиск по сайту, а результаты будут искать по всем типам материалов на сайте.Кроме того, в нижней части каждого описания статьи / эпизода в блоге будет список тегов для этого элемента.
Я слишком много думал о механизме поиска, но, полагаю, он был бы гибким междуИЛИ и И выполняет поиск, если это влияет на выбор и, возможно, позволяет пользователю фильтровать результаты для определенных типов источников.
Первоначально я планировал создать несколько таблиц сопоставления тегов:
BlogTag
id
tag_id
blog_id
EpisodeTag
id
episode_id
tag_id
Но теперь мне интересно, было бы мне лучше:
TaggedStuff
id
source_type
source_id
tag_id
Где source_type будет целым числом, связанным с тем, был ли это эпизод, блог или какой-то другой тип, который я невключенный в структуры выше, и source_id будет ссылкой в этой конкретной таблице.
Мне просто интересно, какова будет оптимальная структура для этого, первый выбор или второй?