My mental image of your database schema is that you have one table for each Vhost, with location, hits, and perhaps modification time columns. If it's normalized, you might have a hosts table with a host_id, and a locations table as described before, but with a host_id which can be used to join on the hosts table.

Actually, the schema is one table for vhosts, one for locations, and one for hits.

The location table has a vhost_id column (as a foreign key) and the hit table has a location ID linked as a foreign key.

Additionally, although I'm not sure of the wisdom of this move, since locations can nest, I have a 'parent id' linked as a foreign key within the location table (i.e. a location can have a 'parent' ... this way I can keep track of hits to a directory that aren't hits to the particular file).

All this is supposed to be user-configurable (the various admins of the various virtual hosts can set up which locations they want reporting on)

If this brings to mind any further ideas about design, etc. I'd love to hear it.

Thanks to all who've replied so far!

Philosophy can be made out of anything -- or less


In reply to RE: Re: Sharing a database handle among objects by arturo
in thread Sharing a database handle among objects by arturo

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.