Does this kind of design come along with overhead or data redundancy? The structure of tables should remain able to do CRUD on tag, for something like manga/anime tag, allowing specific resources found-able through selection of tags. * representing primary key.
tag (tagID*, tagName) tagMap (tagSetID*, tagID*) tagSet (tagSetID*) announce (announceID*, tagSetID, title, content)
Advertisement
Answer
There is nothing at all wrong with your design. Most of the time, we might expect the tagSet
table to also maybe have a name column, e.g.
tagSet (tagSetID*, tagSetName)
That you don’t have one isn’t really an issue. This is really a standard many to many relationship between tags and sets, with the tagMap
table serving as the junction table.