title: Doubt regarding a database design
body: <p>I have a doubt regarding a database design, suppose a finance/stock software</p>
  
  <p>in the software, the user will be able to create orders,
  those orders may contain company products or third-party products</p>
  
  <p>typical product table:  </p>
  
  <pre><code>PRIMARY KEY INT productId  
  KEY INT productcatId
  KEY INT supplierId
  VARCHAR(20) name
  TEXT description
  ...
  </code></pre>
  
  <p>but i also need some more details in the company products like:  </p>
  
  <pre><code>INT instock  
  DATETIME laststockupdate  
  ...
  </code></pre>
  
  <p>The question is, how should i store the data?
  I'm thinking in 2 options:</p>
  
  <p><strong>1 -</strong><br>
  Have both company and third-party, products in a single table,<br>
  some columns will not be used by third-party products<br>
  identify the company products are identified by a supplier id   </p>
  
  <p><strong>2 -</strong><br>
  Have the company products and third-party in separated tables  </p>
  
  <p><strong>3 -</strong> [new, thanks RibaldEddie]<br>
  Have a single product table,<br>
  company products have additional info in a separated table</p>
  
  <p>Thanks in advance!</p>