>In this case it sounds to me that it is way premature to "link" an initial
>contact with a 'final roofing job(s)'.
>In the real world the first contact might be the Purchasing guy/gal, who
>ultimately has nothing to do with an actual site. There could be countless
>other scenarios.
....snip...
>So, towards answering your question, I would consider having several types
>of contacts and I would "link" contacts to regions and/or facilities. I
>would provide for several contacts (unlimited) for any potential client
>company and ultimately one of those contacts will be the one "linked" to a
>particular job.
Another possible thing to do is to keep several link fields in the
contacts table (to link them to company, region, site) and allow them to
be either empty or connected to some key in corresponding tables. In
case a company/site gets deleted (supposing regions never vanish) the RI
would just blank these fields (equally supposing the contacts may be
needed later, no matter they get disconnected from their current links).
Another way is to have a connection table, where it would just have the
links, but that would need far more coding and be worse to maintain. The
upside of this is that you can link one contact with unlimited number of
sites/regions/customers, which is suitable for situation when the
contact is some agent covering more of them.