title: What are the implications of storing enum values as string in relational database(SQLServer)
body: <p>So I need to deign data model for product lifecycle with status field. Status could be say: Production, Service, Warranty, etc. </p>
  
  <p><a href="https://i.stack.imgur.com/P8TNx.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/P8TNx.png" alt="enter image description here"></a></p>
  
  <p>Classic way is just to have separate table Status, and foreign key to Status. However I am thinking of having just string value in this column. Implications I understand are:</p>
  
  <ol>
  <li>Lack of value validation - this is OK in my case, because
  application code control this values.</li>
  <li>Probably more storage - not sure if this correct. Does SQL Server have some optimizations?</li>
  <li>Indexes - not sure here. Is there anything problematic?</li>
  <li>Performance - not sure here. Is there huge performance differences?</li>
  </ol>
  
  <p>Main benefits are:</p>
  
  <ol>
  <li>Readable/Semantics - no matter what data in table will be
  immediately readable.</li>
  <li>More easy to use - adding new value to enum is just adding enum at application level. No need of tedious configurations in ORM.</li>
  </ol>
  
  <p>Do I miss something? Is implications that I outlined are real? Your suggestions?</p>