So a join table for many-to-many is typically(?) a two-column table with foreign keys to two other tables.
I have a colleague that insists on putting an FK in two tables that are FKs to a "join" table that contains only a column of PKs.
Example: A and B have FKs to join table C. A and B are joined by having a mutual C FK. An m::m can be represented like rows A1=>C1, A2=>C1, A3=>C2; B1=>C1, B2=C2, B3=>C1, B4=>C2
The many-to-many is then A1,A2::B1,B3; A3::B2,B4
I guess the problem is if you later want to join A1 to B2, it's not possible because A1 and B2 are already bound to different FK's in C. But this might be okay if A's and B's are immutable.
Hope that make some sort of sense :-P
The many-to-many is then A1,A2::B1,B3; A3::B2,B4
It is NOT many-to-many. It is 3-entity scheme where A and B are 1st and 2nd entities and С is 3rd virtual entity. And in this scheme entity С is referenced by A and by B separately and independently, each as one-to-many. Or you can take this scheme as (group from A)-to-(group from B).