title: Database Design with Change History
body: <p>I am looking to design a database that keeps track of every set of changes so that I can refer back to them in the future. So for example:</p>
  
  <pre><code>Database A 
  
  +==========+========+==========+
  |   ID     |  Name  | Property |
  
       1        Kyle      30
  </code></pre>
  
  <p>If I change the row's 'property' field to 50, it should update the row to:</p>
  
  <pre><code>1    Kyle    50
  </code></pre>
  
  <p>But should save the fact that the row's property was 30 at some point in time. Then if the row is again updated to be 70:</p>
  
  <pre><code>1    Kyle    70
  </code></pre>
  
  <p>Both facts that the row's property was 50 and 70 should be preserved, such that with some query I could retrieve:</p>
  
  <pre><code>1    Kyle    30
  1    Kyle    50
  </code></pre>
  
  <p>It should recognize that these were the "same entries" just at different points in time. </p>
  
  <p>Edit: This history will need to be presented to the user at some point in time so ideally, there should be an understanding of which rows belong to the same "revision cluster"</p>
  
  <p>What is the best way to approach the design of this database?</p>