A User has Paths, which have Blocks I'm wondering if I'm doing this right. I have the following tables


Users
Paths
Blocks



  A Path consists of blocks, A User has one Path, A Block can only belong to one path (so no many-to-many between blocks and paths is needed


This is my blocks table 

+----+---------+-------------+
| id | path_id | description |
+----+---------+-------------+
|  1 |       1 | block 1     |
|  1 |       2 | block 2     |
+----+---------+-------------+


I have the following scheme for the user_paths

+---------+---------+
| path_id | user_id |
+---------+---------+
|       1 |       1 |
|       1 |       2 |
+---------+---------+


And this is my user_blocks table

+----------+---------+-----------+
| block_id | user_id | completed |
+----------+---------+-----------+
|        1 |       1 | true      |
|        2 |       1 | true      |
+----------+---------+-----------+


This is my 'simplified' scheme in picture



Now I'm wondering if this is the right way to go about this? Because


Blocks belong to Paths, but still I'm joining the blocks with the Users table straight. 


I feel like this isn't right? 

But otherwise it isn't possible to check wich user has completed which block, right?

Any idea's or tips?
Thank you!
If 2 tables are 1:1, then probably they should be a single table.  If 1:many, then 2 tables and the 'many' table has the id of the other table.  many:many requires a 3rd table.

It sounds like you have 1:many, so you don't need the user_paths table.

More on optimal schema for many:many.