title: Database Design: how to support multi-lingual site?
body: <p>Suppose I have the table:</p>
  
  <pre><code>TABLE: product
  =================================================================
  | product_id | name           | description                     |
  =================================================================
  | 1          | Widget 1       | Really nice widget. Buy it now! |
  -----------------------------------------------------------------
  </code></pre>
  
  <p><strong>If I want to provide multi-lingual support, what's the best approach to do that?</strong></p>
  
  <p>Possible solutions:</p>
  
  <ol>
  <li>Add a "language" column to the above table; that'll indicate the language the particular record is. (I don't think this is an option for me since other tables will be using product.product_id as its FK.)</li>
  <li>Remove any translatable columns in product table (in the above example, product.name and product.description) and put it in a separate table with a "language" column. That new table will use product.product_id as a FK. (I won't be supporting multi-languages in the first version of my application. This solution means I would have to do an extra JOIN just to get the values of the initially supported language.)</li>
  <li>Something else that I didn't consider?</li>
  </ol>