title: SQL generalization/specialization, data redundancy
body: <p>I have three tables: actions, messages, likes. It defines inheritance, messages and likes are actions' childs (specialization).</p>
  
  <p>Message and Like both have column userId and createdAt. Those should be of course moved to the parrent table Action and removed from Message and Likes. But there's only one case when I need to select both messages and likes from the database, in other cases I select only one of them, either messages or likes.</p>
  
  <p>Is it ok to duplicate userId and createdAt in child and parrent table? It costs disk space but saves one join - I would have to join messages, likes with actions everytime I needed userId and createdAt. Whatsmore I would need to change my current code...</p>
  
  <p>What would you suggest?</p>