title: Database Normalization (3NF) - Foreign keys
body: <p>After trying to understand the 3NF, I've come into a little issue that I am not sure I understand correctly.</p>
  
  <p>The problem occurs in a structural component as follows:</p>
  
  <pre><code>s = {
  Product(ProductID, ProductName, ProductDescription, SupplierName, SupplierAddress, SupplierID)
  }
  
  F = {
  ProductID -&gt; ProductName, ProductDescription
  SupplierID -&gt; SupplierName, SupplierAddress
  }
  </code></pre>
  
  <p>Of course, by default, I'll move both the SupplierName and SupplierAddress to a different entity / table. The issue comes to in the form of SupplierID. I don't know if it is okay to keep the SupplierID in the Product table / entity.</p>
  
  <p>The thing is, SupplierID doesn't depend on the ProductID (as it's written within F). I believe that putting it into a 3rd table (as follows) would be fine.</p>
  
  <pre><code>S = {
    Products(ProductID, ProductName, ProductDescription),
    Suppliers(SupplierID, SupplierName, SupplierAddress),
    PS(ProductID, SupplierID)
  }
  </code></pre>
  
  <p>However, would the 3NF be still ok if I had put SupplierID within the Products table (not have the "PS" table at all).</p>