Od razu pojawia mi się pytanie czy wszędzie potrzebne są relacje wiele do wielu aczkolwiek jest to jak najbardziej możliwe (zależy od tego jak ma to działać).
Co do pytania to jest nieprecyzyjne - są tu w zasadzie same relacje wiele-do-wielu a więc nie uzyskasz wyjściowo jednego łącznego rekordu.
Rozpisz dokładniej co konkretnie chciałbyś uzyskać - może na jakimś przykładzie.
EDIT: co do samego zbudowania to jest poprawne - normalizacja wygląda na 3 postać normalną więc ok (pamiętać jedynie trzeba, że normalizacja nie zawsze idzie w parze z wydajnością

). Jeśli na każdym kluczu obcym masz relacje/index to jest ok