title: Multiple tables with the same schema or 1 table with multiple Foreign Keys?
body: <p>I'm working on an ASP.NET MVC 4 application where at each 'level' there is an option to add a fee. Say I have a Company which can have many Campaigns (1-to-Many), and Campaigns that have many Products(1-to-Many). [Using DB first design]</p>
  
  <p>A Company, Campaign and Product can all have a list of 'fees' associated with them, and the data for the fee is the same [name, value, FK, etc.]</p>
  
  <p>I'm currently working with a "CompanyFee", "CampaignFee", and "ProductFee" table that have a Foreign Key for it's associated Table. [Identical tables other than the FK relationship]</p>
  
  <p>Does it make sense to just have a "Fee" table that has a Foreign Key Column for each Table that can have fees. So "FeeTable" would be [name, value, CompanyID(FK), CampaignID(FK), ProductID(FK), etc]</p>
  
  <p>This would mean that it would be considered a "ProductFee" if the ProductID is the only FK with a value, while the others would be null.</p>
  
  <p>Is it best practice to keep these table separate? What are other implications of either structure? </p>