Wherever possible all database design should be driven by what the entity relationship is telling you, and Mr Codd should be obeyed.

In this case there are just two entities; 'show' and 'tag'.  And their relationships are:

Show can have one or more tags

Tag can appear attached to one or more show.

Which gives rise to the many-to-many relationship like this:

show------tag

The show_tag_xref table has a compound unique key comprised of the key column from the two outside tables, show and tag.

That's the pure analysis of the two entities concerned.

I can't think of any processing constraints, like speed or storage that would compel that relationship to be compromised.  As you said in your part 1, this is a small database.

