title: Bidirectional foreign key constraint
body: <p>I'm thinking of designing a database schema similar to the following:</p>
  
  <pre><code>Person (
    PersonID int primary key,
    PrimaryAddressID int not null,
    ...
  )
  
  Address (
    AddressID int primary key,
    PersonID int not null,
    ...
  )
  </code></pre>
  
  <p>Person.PrimaryAddressID and Address.PersonID would be foreign keys to the corresponding tables.</p>
  
  <p>The obvious problem is that it's impossible to insert anything into either table. Is there any way to design a working schema that enforces every Person having a primary address?</p>