title: Ideal practice for implementing a 1:1 relationship
body: <p>In a webshop, there are two (relevant to this question) tables: <code>UserSnapshot</code> and <code>Purchase</code>. Upon making a purchase, the user's current information is snapshot so that the purchase records are intact even if the user is later removed or changed. This gives a 1:1 relationship, where each purchase has only one user snapshot, and each user snapshot has only one purchase.</p>
  
  <p>My question is, how should I implement this? Should I have a foreign key pointing to the user snapshot in the purchase table, the other way around, or should I use both (redundant)? Should I combine the two (messy)? Serialise the user snapshot (does not obey 'one value per field')? </p>