title: Index on string column on big MSSQL database
body: <p>I have to design a database to store some production process measurements data. The data would be collected from PLCs. I would like to store this data on a remote server, to which all the machines have access. I would like to store the following data:</p>
  
  <ul>
  <li>timestamp</li>
  <li>plant</li>
  <li>production line</li>
  <li>machine</li>
  <li>workpiece number</li>
  <li>measurement unit</li>
  <li>measurement type</li>
  </ul>
  
  <p>Some machines share same measurements types, some have unique ones. Is it a good solution, that I would make <code>measurement type</code> column of type <code>VARCHAR</code> and let the PLC programmers free hands with naming new measurement types without my intervention to insert new entry in related foreign table and handing them the new ids? The expected count of unique measurement types is around 100. Is an index on this column a solution for later filtering and selecting from this table which is expected to have around 50 billion rows in a year?
  Probably also the size of the table would become a big issue.</p>
  
  <p><strong>EDIT:</strong> Should I also separate measurement value and measurement type to other table than part information?</p>
  
  <p>Is there a way, that SQL server would take care of adding new <code>measurement type</code> to some internal table and handling the ids?</p>
  
  <p>Hopefully I explained my question enough, otherwise write the question in comment.</p>
  
  <p>Regards</p>