title: Should both tables have user_id, even though one-to-one relationship?
body: <p>I have got two tables <strong>subscriptions</strong> and <strong>payments</strong>. These two are related with a <em>one-to-one</em> relation. Basically every <strong>subscription</strong> belongs to a <strong>user</strong> (via <code>user_id</code>) and every <strong>payment</strong> belongs to a <strong>user</strong> as well. (yes I know) Because they are bond with a <em>one-to-one</em> relation, there is logically no need that both carry the user_id row. But it's vital for  both that they show the <strong>user</strong> they belong to and I am not sure. Should I rely on that bond or would it be okay that both keep their <code>user_id</code> (even they will be same) ? This is more of a theoretical question but a little example of the tables are below.</p>
  
  <pre><code>payments
  id   user_id   paymentstuff  ...
  1    42         ...
  2    16         ...
  
  subscriptions 
  id   payment_id   user_id   subscriptionstuff  ...
  1    1            42        ...
  2    2            16        ...
  
  users
  id   name   lname userstuff  ...
  16   john   doe   ...
  42   jane   foe   ...
  </code></pre>
  
  <p><strong>PS:</strong> As @jeroen and @ThomasSmyth mentioned, a <strong>user</strong> can have <strong>many</strong> subscriptions and a <strong>user</strong> can have <strong>many</strong> payments as well. So the user part has a <em>one-to-many</em> relation to payment and subscriptions. </p>