Да, совершенно нормально; просто обратите внимание на ключи.
Я знаю, что это создаст две связи M2M между двумя сущностями, когда рекомендуется объединить их в одну.
Нет, это не так рекомендуется. Просто сосредоточьтесь на логике c, предикатах и ограничениях, в отличие от жаргона (м2м ...).
-- User USR exists.
--
user {USR}
PK {USR}
-- Study STY exists.
--
study {STY}
PK {STY}
-- User USR is eligible for study STY.
--
eligibility {USR, STY}
PK {USR, STY}
FK1 {USR} REFERENCES user {USR}
FK2 {STY} REFERENCES study {STY}
Если пользователь записался в исследование, то этот пользователь должен иметь право на участие в этом исследовании.
-- User USR enrolled in study STY.
--
enrollment {USR, STY}
PK {USR, STY}
FK {USR, STY} REFERENCES eligibility {USR, STY}
Примечание:
All attributes (columns) NOT NULL
PK = Primary Key
FK = Foreign Key