You've got to follow some fundamentals to build your database structure, yours seems correct at first sight:
- each table must have an auto-incremented primary key
- each data must be located at a unique place (never duplicate any data at 2 different places)
I recomment you to use MySQL Workbench
to build your structure, it allows to create your tables & relations in a visual way with shemas, and synchronize them on your server.
Here's a tutorial to get started with MySQL Workbench
. You'll find on the same website several tutoriels about the different kinds of database relationships and other related things.