I'm building a database model that requires one table to have a relationship to only one of several other tables. For example, a Contract may be associated with a Person, a Business, or a Government, but only one of those.
Other than having a foreign key column for each of those and using a check constrain to ensure only one is populated, what is the best approach to this situation?