AltBlue,

I solved the same problem a couple years ago with Cascade. It's uses Perl and Postgres (MySQL is supported in some versions) and is available under the GPL.

Ovid's solution is the most intuitive one for handling the "tree" structure of the categories, but it won't provide the best performance as some others methods (as he hints at). It also makes some SQL queries hard. I solved this by adding a "sort_key" in addition to the parent_id, which gives you your exact location in the tree, allowing you answer almost all questions about relationships in the tree in one query. You can peek in my data model and code to see how that works.

But don't go solving the problem again, just use Cascade. :) The demo site is updated to use the 2.1.0 BETA version at the moment, which isn't quite released, but adds several new features. -mark


In reply to Re: database design issue: (solved with Cascade) by markjugg
in thread database design issue: one big table vs hundred of smaller tables by AltBlue

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.