yes you are on the right path
first thing to consider: a relationship needs a name
you're missing the relationship from project to prime consultant contact
you already have one (the m:m one between project and consultant contact) but you need another one (a 1:m one)
hence they need to be named in order to distinguish them
second thing to consider: contacts are people, and you might want to haev a supertype/subtype structure for people and the different types of contacts that they can be
if an owner contact can also be a consulting contact on a separate project, your current scenario would have you entering the same person in two places
