I hope someone (or some people) can help us with the problem that we have been facing for several days. How to organize our business objects taking into account the attached diagram?
We are looking for any help (ideas on where and how to look for design templates / object models that we could use to solve this problem. Our situation is a little more complicated, but we tried to simplify it so that we can ask it.
Some details: Some companies have production lines, and some do not.
Each company has a contact list. If a company has at least one product line, some of these company contacts are also associated with at least one product line.
Multiple contacts are links (business / personal) for other contacts.
Each company and each contact can have zero or more addresses.
Thank you for your help in finding a more suitable solution (My assumption is that we will need to use several models / templates).

Larger view (flickr.com)
** (from the chart) Our company has employees / users of internal applications that are included in contacts, because they can also be links, etc.