title: (Mysql) What is the most efficient way to store table changes?
body: <p>I am developing a web application with mysql, and I have several tables including <strong>user</strong> and <strong>article</strong>.</p>
  
  <p>As I would like to record the user that has updated the selected article, I thought about three possibilities:</p>
  
  <ul>
  <li>Add two columns to the table <strong>article</strong>: ART_USE_ID (to know who has changed) and ART_date (to save the datetime).</li>
  <li>Create a third table <strong>changes</strong> with CHA_USE_ID, CHA_ART_ID and CHA_date, which would have an entry every time a user changes the table.</li>
  <li>Make a combination of both: create a table <strong>changes</strong> but keep a ART_date to retrieve more quickly the date of the last change.</li>
  </ul>
  
  <p>In my opinion, the third one is redundant, and the first one badly conceptualised (and only the last change is kept). Even though the second one appears to be good for only one table (<strong>article</strong>), I am afraid it gets more complicated and very slow if changes must be saved for more than 30 tables -- <em>that means the <strong>changes</strong> table would have 30 foreign key(?!)</em></p>
  
  <p>What is the best way? What is your opinion about it? </p>