I can see using an AI ID, but not using that AI as part of the primary key.
And leaving the AI row along makes sense to me to restrict 1 of each... what ever that is... and then be able to use row_id as the row pointer, though not completely necessary..
PRIMARY KEY (`mytable_farmers_row_id`, `mytable_farmers_mytable_users_row_id`) ,
I agree withe everyone else though, this is just broke, starting with the naming convention.
An example of why you might use a non primary key'd AI:
user_id AI, PK
This would ensure only one role per user is allowed in, and I could perhaps use the role_id to delete certain rows, but should really be handled though dual criteria on the PKs.