MySQL. Relationships
Your question hits a 'gray area'; there is not an overwhelmingly 'right' way to design the schema.

When the question is asked about city + state + country, I say:  Have one Locations table that contains all 3 columns.  And use country_code CHAR(2) CHARACTER SET ascii.

I also say "normalize, but don't over-normalize".

There are 'religious wars' fought over your question.  There are valid points on either side.  Flip a coin, implement it, then learn from the decision.

Better yet, implement both ways - writing the CREATE TABLEs, the INSERTs, the SELECTs, etc.

Still better is to implement both, but have a "database abstraction layer" in your code that hides the choice from your application code.  Coming up with a single abstraction for your app that works with either backend will be the best lesson here.