Re: 2 Questions.
| From: | Luke | Date: | Tue, 16 Sep 2008 09:55:20 +0000 |
| Subject: | Re: 2 Questions. | ||
| References: | 1 2 3 4 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-280266@lists.php.net to get a copy of this message | ||
More popular online shopping sites get orders of around 4 per second at peak
times. IE Christmas.
2008/9/14 Tom Shaw <php.coder@tx.rr.com>
> That's cool thanks. I agree with you too it's mankind's folly. But
> regarding
> the db question, I got the idea from CakePHP which solves the problem of
> having to prefix your columns ie user_name etc etc. I think you can use
> another built in php database function num_fields() and hook into the meta
> data and then you would have to manually build the information into array.
> I'm not sure but I'm going to hack around with it a little and see what
> happens.
>
> Thanks Thomas
>
> -----Original Message-----
> From: Jochem Maas [mailto:jochem@iamjochem.com]
> Sent: Sunday, September 14, 2008 4:50 AM
> To: Tom Shaw
> Cc: 'PHP General'
> Subject: Re: [PHP] 2 Questions.
>
> Tom Shaw schreef:
> > -----Original Message-----
> > From: Tom Shaw [mailto:php.coder@tx.rr.com]
> > Sent: Saturday, September 13, 2008 9:52 PM
> > To: 'Jochem Maas'
> > Subject: RE: [PHP] 2 Questions.
> >
> > iamjochem wrote:
> >
> >>> My second question is I've designed a very simple Postgres database
> >> wrapper.
> >>> The methods are exactly what you would assume to see in any db wrapper
> a
> >>> pg_query, pg_fetch_array. My question is in the db wrapper, is there an
> >> easy
> >>> way to always include the table name as an index in all my
> pg_fetch_array
> >>> returned results? The reason I ask is when designing my tables I'm
> >> delegated
> >>> to prefixing my column names i.e. users_name instead of just name or
> >>> forum_posts instead of just posts to make sure there's no collision.
> >>>
> >> have your simple wrapper do something like:
> >>
> >> $sql = "SELECT foo AS {$tablename}_foo FROM {$tablename} WHERE 1";
> >>
> >> with regard to generating the query. if your wrapper doesn't generate
> the
> >> SQL then you'll have to parse the given SQL and rewrite it ... good luck
> >> with that.
> >
> > I'm not sure if my wrapper is a good place for the sql but I bet it's
> worth
> > investigating further. I like the web site iamjokem. Im not sure if
> that's
> a
> > jokem too but I couldn't figure it out...
>
> it's jochem not jokem, so technically there's no joke. but you could say
> the
> 'site'
> is my answer to the social grid. or maybe a reaction to all the twitter
> like
> nonsense,
> or maybe just the fact that everyone seems to think the answer is out
> there,
> when really the only answer is 'in here'
>
> take the red pill/door. it's the only choice ;-)
>
> ......
>
> generating SQL is pretty easy, give a function a list of fields as an array
> and a
> table name (you can then build the function out to include order by and
> where clause
> generation. here is a very simple concept function (I wouldn't bother using
> it
> as is):
>
> function genSQL($fields, $table, $where, $order)
> {
> $fnames = array();
> foreach ($fields as $f)
> $fnames[] = $tablename.'_'.$f;
>
> return 'SELECT '.join(', ', $fnames)." FROM $tablename $where
> $order";
> }
>
>
> >> I should have mentioned that I use a *normalized* database wharehousing
> >> pattern where each row represents a distinct item being purchased. There
> >> could be fifty rows corresponding to a single order transaction like
> what
> >> you would see in something like an itunes music purchase. So using the
> > auto
> >> increment id would not work to differentiate between orders. Another
> user
> >> mentioned microtime.
> >
> > whoa, race car hey? let's have a race.
> >
> > normalized smormalized. every order related system I've looked at, built
> or
> > worked with made a clear distinction between an **order** and an
> > **orderline**,
> > all you seem to have is an order line ... who do they belong to? are you
> > replicating the customer details and shipping address in each row? (if so
> > I hardly call that normalized)
> >
> > use generators or sequences or 'auto increment ids' or whatever your DB
> > calls
> > it, dump the timestamp/microtime nonsense, and rework you DB schema to
> > incorporate order **and** orderline entities ... and use a required
> foreign
> > key
> > in each orderline to reference the relevant order.
> >
> > with regard to iTunes store, steve jobs can go shove it ... but I'll
> wadger
> > my soul that the guys that built it know the difference between an order
> > and an order line and that they use both concepts.
> >
> so you understand your DB model was wrong/incomplete? and that timestamps
> of any granularity should not be used as UIDs?
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>
--
Luke Slater