1-in mysql there's a different way to relate tables with no foreign key?the relation parent-child or generalization only can be created by foreign key?

2-As well as for a many - many relationship (in 2 tables) is definitely require a third table?

suppose i've 30 tables, this structure of primary key/foreign key becomes a little confusing, no?


No, after you have 30 tables, foreign secrets allow it to be simpler to determine what relates to what.

Many-many relationship always takes a separate table.