In your current design, you assume the email, phone or address comes from a contact, lead or account record ONLY. Worst: if one wants to add custom entities and use it as a source of truth for marketing lists ( example: a “role” carries its own contact details and is the one to be used ), it is impossible to add it as a source for marketing lists. This design is to limited and does not match reality where customer might want to have 1 contact, several roles and various contacts details. Today this means we need to allow as many contacts ( duplicates) as different emails or adresses Id we want to target the right email/phone:/address based on the type of criterias we select. You should rather use a ‘ contact information” entity that we can use as source in marketing list whatever the attributes attached ( contacts, accounts, leads, roles, custom entities,...), or enable custom entities to be used in marketing lists ( with some setup for example). I faced this need on at least 3 projects I had to manage.