title: Designing a conditional database relationship in SQL Server
body: <p>I have three basic types of entities: People, Businesses, and Assets.  Each Asset can be owned by one and only one Person or Business.  Each Person and Business can own from 0 to many Assets.  What would be the best practice for storing this type of conditional relationship in Microsoft SQL Server?</p>
  
  <p>My initial plan is to have two nullable foreign keys in the Assets table, one for People and one for Businesses.  One of these values will be null, while the other will point to the owner.  The problem I see with this setup is that it requires application logic in order to be interpreted and enforced.  Is this really the best possible solution or are there other options?</p>