[eluser]WanWizard[/eluser]
In a normal many-to-many relationship, you will have a join table with only two foreign keys (one for each table), and the join table itself doesn't have a Datamapper model. Both foreign keys need to allow NULL. The join table has the name of both other tables, in alphabetical order.
If you add a third foreign key, you're basically creating a one-to-many from the join table to a third table. So you need a model for the join table, and define the relation. This foreign key also need to allow NULL.
You can use set_join_field(), and not treat this field as a foreign key in Datamapper context, but you still need the model to be able to access the relationship this third foreign key defines.