Use only one Junction Table per Database?
The first solution is the best.


The second solution will give you less tables but in case that you need to join 3 tables with 2 junctions you need to use the big junction table twice in your SQL.
In case that you want to create constraints between a table and it's junction (is practically mandatory) then this is not possible in the second solution. Your data integrity will not be checked by the database.
The ER diagram for the second solution will look complicated for somebody that needs to get data out of your database.