| 
	
 | 
 Posted by Kenneth Downs on 05/14/06 17:22 
windandwaves wrote: 
 
> Hi Folk 
>  
> I have to store up to eight boolean bits of information about an item 
> in my database. 
>  
> e.g. 
>  
> [ ] with restaurant 
> [ ] drive-through facility 
> [ ] yellow windows 
> [ ] wifi factilities 
> etc... 
>  
> There are three ways of storing this information in my mysql database 
> A. add eight fields (tiny integer) 
> B. add one tiny integer and create a function in PHP that can translate 
> the number stored into a  eight boolean values (the bits) 
> C. create a table which list 
>      ItemID 
>      Associated characteristics 
> In C, you will only list the characteristics that are true for the item 
> listed. 
>  
> Option B is the most efficient in MySql, but would you recommend it 
> when creating a PHP website.  The problem is that the user needs to 
> enter them with a nice webform, etc... 
>  
 
From experience? Option B obfuscates the data, and so will cost you over and 
over, far past your memory of why you thought it was a good idea when you 
did it.  The data is now trapped in a column that requires annoying 
gymnastics to pull out, nobody will remember which column is in what bit, 
and so on and so on.  Your PHP library now becomes a *requirement*, what 
happens if I am at a database console and what to do some simple ad-hoc 
queries?  
 
OTOH, Option A has 8 named columns that can be updated and queried with SQL, 
why do anything else? 
 
 
 
 
--  
Kenneth Downs 
Secure Data Software, Inc. 
(Ken)nneth@(Sec)ure(Dat)a(.com)
 
  
Navigation:
[Reply to this message] 
 |