RE: explode in mysql query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Paul Novitski [mailto:paul@xxxxxxxxxxxxxxxxxxx]
> Sent: Friday, April 27, 2007 3:01 AM
> To: php-general@xxxxxxxxxxxxx
> Subject: Re:  explode in mysql query
> 
> At 4/26/2007 11:33 PM, Sebe wrote:
> >i have a mysql column that looks like this:
> >
> >groups
> >-------
> >12,7,10,6,14,11,2
You should never have tables that look like this.  If this is early in
the application development, look into 3rd normal form for SQL tables
(don't worry about 4th or 5th).  In a nutshell, here is what you should
be doing: you have a many to many relationship (big thing to note).
Whatever holds groups (lets call it foo) to groups.

So you should do something like this:

===
Foo <--A table
===
Id <-- columns
groups
Coln

===
Groups
===
Id
Col1
Col2
Col3

So then you create a 3rd table named

===
Foo_has_groups (or groups_has_foo, whichever sounds best)
===
Fooid
groupsid

So then, you can do much more powerful queries, with much less overhead.

Such as: 
SELECT t1.* FROM foo t1, groups t2 WHERE t1.id=t2.whatever_id AND
(t2.group=7 OR t2.group=14);

If you are reluctant to do any of these optimizations to your database,
then you better not worry about anywhere in your PHP code to do _ANY_
optimizations.  This will be your system bottleneck!  99% of the time
(maybe less....) when you get a slow application, your bottlenecks will
be in your sql queries/design. 

Hopefully that all made sense

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux