title: DB Row length/complexity vs Row count: is there a rationale for the former?
body: <p>We have a db table that I'll call TIMES.  It has traditionally looked something like this:</p>
  
  <pre><code>ID    Blah1 Blah2 Blah3  Description
  1     a     b     c      Day
  2     d     e     f      Night
  </code></pre>
  
  <p>(I've added the Blah columns primarily to show that there are a lot more columns in the table which exist, but are not directly relevant to the upgrade we're trying to make.)</p>
  
  <p>We want to add some language support to the results we get from the db.  So my suggestion was to either:</p>
  
  <p>a) Take the lazy road and just add a new column for language, giving us</p>
  
  <pre><code>ID    Blah1 Blah2 Blah3  Description  Language
  1     a     b     c      Day          English
  2     d     e     f      Night        English
  1     a     b     c      Tag          German
  2     d     e     f      Nacht        German
  </code></pre>
  
  <p>or, preferably, b) do some normalization and create a new table of just the relevant values:</p>
  
  <pre><code>ID      Description  Language
  1       Day          English
  2       Night        English
  1       Tag          German
  2       Nacht        German
  </code></pre>
  
  <p>Our DB guy said, well, we could just use the original table and just include everything in xml...that way we'll save on rows.</p>
  
  <pre><code>ID        Blah1 Blah2 Blah3  Language
  1         a     b     c      &lt;TimeDescriptions&gt;
                                   &lt;TimeDescription language='English'&gt;
                                       Day
                                   &lt;/TimeDesciption&gt;
                                   &lt;TimeDescription language='German'&gt;
                                       Tag
                                   &lt;/TimeDesciption&gt;
                               &lt;/TimeDescriptions&gt;        
  2         d     e     f      &lt;TimeDescriptions&gt;
                                   &lt;TimeDescription language='English'&gt;
                                       Night
                                   &lt;/TimeDesciption&gt;
                                   &lt;TimeDescription language='German'&gt;
                                       Nacht
                                   &lt;/TimeDesciption&gt;
                               &lt;/TimeDescriptions&gt; 
  </code></pre>
  
  <p>"Save on rows"?  I'm not really a db guy, but that sounds weird to me.  Sure, it will save some rows...but is that a win overall, when the rows themselves are much longer?  (Very possible)  Beyond that, it looks like it breaks rules of normalization that I'm used to.  I also know that one can use XML in SQL and search it (though I've not done it, and am very hazy on the details), but I just don't see the win with this.  </p>
  
  <p>He started getting prickly when I was asking about it, so I backed off, but I'd still like to know if I'm missing something.  Obviously many details are missing, but I'm not looking for a detailed analysis...I'd just like to know if it possible that this is reasonable.</p>
  
  <p>EDIT: ARGH.  You would think that I've been here long enough to have learned to format correctly, but I'm messing that last bit up somehow...I'll try to fix it, but other edits are welcome.</p>