Как лучше смоделировать систему тегов на веб-сайте (модель данных в СУБД)
Есть несколько сущностей - товаров. Они качественно разные: tshirts (футболки), badges (значки) и т.д. Для каждой создал отдельную таблицу. Также создал таблицу genres (жанры), product_types (где каждая запись эквивалентна типу товара). В таблице tags есть поля product_id, product_type_id и genre_id. Последние два поля - внешние ключи. Как быть с product_id?
Тут же появляется проблема, что вручную вписывать - такой себе вариант, как минимум, могут возникнуть ошибки из-за того, что туда могут вписать id, превышающий максимальное значение, да и в целом как-то не по-человечески получается.
Как спроектировать более подходяще?
P.S. Для справки: помимо перечисленных таблиц в системе существуют и другие, но это не относится к теме вопроса. Использую СУБД PhpMyAdmin из OpenServer.