title: how do I normalize a large, user-generated data-set of company names?
body: <p>Use case:  User 1 uploads 100 company names (e.g. Microsoft, Bank of Sierra)</p>
  
  <p>User 2 uploads 100 company names (e.g. The Gap, Uservoice, Microsoft, Inc.)</p>
  
  <p>I want User 1's notion of Microsoft and User 2's notion of Microsoft to map to a centrally maintained entity with a unique index for Microsoft.</p>
  
  <p>If someone uploads a name which isn't in the central repository, I guess I'd like it to be entered as is.  But then what happens if that first entry is incorrectly spelled (e.g. Vergin Mobile instead of Virgin Mobile?)  How can we best correct it and correlate new uploads to that same index?</p>
  
  <p>Technically, should the central repository be a separate database altogether?  Should even the user generated information be in a separate database, as well, from the business transactions that will occur against it?</p>
  
  <p>Starting out with a large definition of the problem and hoping to chunk it up with your input, thanks.</p>