title: Database architecture question: 1 table per customer or 1 unique table for all customers
body: <p>We have a need to know which database architecture makes more sense to use and why.</p>
  
  <p>We have a list of customers who are all going to use the same table structure (with very few exceptions).</p>
  
  <p>We would have about 10 thousand customers who might all have all about 50 thousand products each.</p>
  
  <p>The processing on products may not be the same for each customer and we would also want to provide a plan where customers could have API access to their data. </p>
  
  <p>Our customers do sell products and their SQL table structure would all have columns such as :</p>
  
  <ul>
  <li>Feed_ID</li>
  <li>Product_ID</li>
  <li>Product_Description</li>
  <li>Price</li>
  <li>Weight</li>
  <li>etc...</li>
  </ul>
  
  <p>The <code>Feed_ID</code> is used to differentiate the origin of these products and will be unique for each customer - of course.</p>
  
  <p>The 3 choices of relational table structure that we have thought about:</p>
  
  <ol>
  <li><p>Each customer has its own database and in that database, he has 1 table per product-feed</p></li>
  <li><p>All customers are hosted under 1 unique database under which all customers all have 1 table per feed - in that case, 1 customer can have 2 tables if he as 2 different product feed.</p></li>
  <li><p>All customers are hosted under 1 unique database, HOWEVER, in this 3rd solution, we only have 1 unique table that host all products feed of all customers.</p></li>
  </ol>
  
  <p>Which solution would you use and why you think that the solution you selected is better?</p>
  
  <p>Thank you.</p>