product table has category, media table has category, tickets table has category.
Each of these has a HasMany relation with category table. There are two ways of doing it:
-
Have a common Category table with probably a type column and have intermediatory table like MediaCategory, etc.
-
Have separate tables like MediaCategory with each having same structure as category
which one is better(speed, maintainability etc)