Can some explain best practice for me in this situation?
I have five Tables: Policies, PolicyContacts, People, Companies, Trusts.
A PolicyContact can be a Person, Company or Trust.
How would I design this? Should I create an umbrella table called Contacts which amalgamates the Person, Company and Trust tables and use this ID in the PolicyContacts Table? Should I write triggers to update the Contacts table when a Company/Person/Trust is added?
ContactsId, ContactTypeId, ContactId
Where ContactTypeId specifies Person,Trust,or Company, and ContactId is the ID from the relevant table?
Should I write triggers to update the Contacts table when a Company/Person/Trust is added?
No, because Company, Person, Trust should all reference the parent table and you ought to have a foreign key constraint for that, which means the parent table must be populated first. Create a stored procedure to do it. You don't need a trigger.