<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div><span>Perhaps then this can be viewed as a stepping stone for SQL-o-philes to help them start thinking in map-reduce terms without having to go whole hog (whole Pig?) and obtain/install/learn a whole new tool set.</span></div><div><span><br></span></div><div><span>Mike Mac.</span></div><div><br></div><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><div style="font-size: 12pt; font-family: 'times new roman', 'new york', times, serif; "><font size="2" face="Arial"><hr size="1"><b><span style="font-weight:bold;">From:</span></b> Ben Tilly <btilly@gmail.com><br><b><span style="font-weight: bold;">To:</span></b> Mike Frager <mfrager@gmail.com><br><b><span style="font-weight: bold;">Cc:</span></b> Los Angeles Perl Mongers <losangeles-pm@pm.org><br><b><span
 style="font-weight: bold;">Sent:</span></b> Monday, July 11, 2011 11:28 AM<br><b><span style="font-weight: bold;">Subject:</span></b> Re: [LA.pm] July Meeting?<br></font><br>2011/7/11 Mike Frager <<a ymailto="mailto:mfrager@gmail.com" href="mailto:mfrager@gmail.com">mfrager@gmail.com</a>>:<br>> Actually vertical tables are not much like pivot tables. They are a way to<br>> store data where the schema (the columns names) changes frequently or is not<br>> known ahead of time.<br>><br>> This might give away the presentation, but here's how it works:<br>><br>> You create one table to store the field names:<br>><br>> Field Names Table:<br>>    id<br>>    field_name<br>><br>> Then another table for the data:<br>><br>> Data Table:<br>>   id<br>>   record_id<br>>   field_id<br>>   data<br>><br>> Each "record" in the vertical table, gets broken down into
 multiple rows in<br>> the "Data" table. Each row in the "Data" table then references a "Field"<br>> type and contains a piece of data. This is the equivalent of a column value<br>> in a regular, horizontal table. These records are tied together into on<br>> "virtual row" by the "record_id".<br><br>Transactional performance may be OK, but dynamic creation of complex<br>reports would really, really suck with a schema like that in a<br>traditional relational database.<br><br>(If you're going outside of relational databases, then map-reduce<br>should work just fine.  Albeit with a significant necessary resource<br>overhead.)<br><br>> -Mike Frager<br>><br>><br>> On Mon, Jul 11, 2011 at 10:44 AM, Randal L. Schwartz <<a ymailto="mailto:merlyn@stonehenge.com" href="mailto:merlyn@stonehenge.com">merlyn@stonehenge.com</a>><br>> wrote:<br>>><br>>> >>>>> "Mike" == Mike Frager <<a
 ymailto="mailto:mfrager@gmail.com" href="mailto:mfrager@gmail.com">mfrager@gmail.com</a>> writes:<br>>><br>>> Mike>  By doing this you can change the schema on the fly.<br>>><br>>> I've always wanted my flies to have different schemas!<br>>><br>>> Mike> It's likely something you may have seen before, but under a<br>>> Mike> different name.  Usually worth a look though. Since I first<br>>> Mike> learned about it, it has greatly helped how I think about<br>>> Mike> databases.<br>>><br>>> Pivot tables, maybe?<br>>><br>>> --<br>>> Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777<br>>> 0095<br>>> <<a ymailto="mailto:merlyn@stonehenge.com" href="mailto:merlyn@stonehenge.com">merlyn@stonehenge.com</a>> <URL:<a href="http://www.stonehenge.com/merlyn/"
 target="_blank">http://www.stonehenge.com/merlyn/</a>><br>>> Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.<br>>> See <a href="http://methodsandmessages.posterous.com/" target="_blank">http://methodsandmessages.posterous.com/</a> for Smalltalk discussion<br>><br>><br>> _______________________________________________<br>> Losangeles-pm mailing list<br>> <a ymailto="mailto:Losangeles-pm@pm.org" href="mailto:Losangeles-pm@pm.org">Losangeles-pm@pm.org</a><br>> <a href="http://mail.pm.org/mailman/listinfo/losangeles-pm" target="_blank">http://mail.pm.org/mailman/listinfo/losangeles-pm</a><br>><br>_______________________________________________<br>Losangeles-pm mailing list<br><a ymailto="mailto:Losangeles-pm@pm.org" href="mailto:Losangeles-pm@pm.org">Losangeles-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/losangeles-pm"
 target="_blank">http://mail.pm.org/mailman/listinfo/losangeles-pm</a><br><br><br></div></div></div></body></html>