[thelist] Re: Database schema

David Siedband david at calteg.org
Wed Dec 10 21:58:11 CST 2003


I think it would make sense to break up the products table a bit.  Any 
time when you find yourself with a table where you would have a large 
amount of fields that are not getting used, it's a good candidate for 
breaking into more specificized tables that get joined to the original.  
This is a clue that the table is decribing multiple entity types, which 
is usually suboptimal.  I would suggest putting the printer and scanner 
specific fields in a common table though to accomidate 
printer/scaner/fax devices.

--
Dave




Cosmin G wrote:

>Well, I think the best thing I can do is show everyone the .sql file, so
>here goes:
>
>
>#
># Table structure for table `product`
>#
>
>DROP TABLE IF EXISTS `product`;
>CREATE TABLE `product` (
>  `prod_id` int(11) NOT NULL auto_increment,
>  `cat_id` int(11) NOT NULL default '0',
>  `manuf_id` int(11) NOT NULL default '0',
>  `name` varchar(50) NOT NULL default '',
>  `description` text NOT NULL,
>  `state` smallint(6) NOT NULL default '0',
>  `picture` varchar(255) NOT NULL default '',
>  `price` int(11) NOT NULL default '0',
>  `warranty` varchar(5) NOT NULL default '',
>  `model` varchar(45) NOT NULL default '',
>  `code_name` varchar(45) NOT NULL default '',
>  `mb_ob` set('audio','video','LAN','modem') NOT NULL default '',
>  `cpu_socket` varchar(15) NOT NULL default '',
>  `cpu_freq` smallint(7) NOT NULL default '0',
>  `cpu_fsb` smallint(6) NOT NULL default '0',
>  `cpu_cache_l2` varchar(15) NOT NULL default '',
>  `mb_chip` varchar(30) NOT NULL default '',
>  `mb_format` varchar(5) NOT NULL default '',
>  `mb_socket` varchar(50) NOT NULL default '',
>  `mb_fsb` varchar(10) NOT NULL default '',
>  `mb_cpu` varchar(20) NOT NULL default '',
>  `mb_mem` varchar(12) NOT NULL default '',
>  `mb_slots` tinyint(2) NOT NULL default '0',
>  `mb_hdd` varchar(20) NOT NULL default '',
>  `mb_vid_mode` varchar(15) NOT NULL default '',
>  `hd_cap` varchar(15) NOT NULL default '',
>  `hd_rpm` varchar(10) NOT NULL default '',
>  `hd_interf` varchar(20) NOT NULL default '',
>  `hd_access_time` tinyint(5) NOT NULL default '0',
>  `hd_mem` tinyint(2) NOT NULL default '0',
>  `mem_late` varchar(15) NOT NULL default '',
>  `mem_tip` varchar(15) NOT NULL default '',
>  `mem_capa` varchar(15) NOT NULL default '',
>  `mem_freq` varchar(15) NOT NULL default '',
>  `speaker_model` varchar(20) NOT NULL default '',
>  `speaker_type` varchar(8) NOT NULL default '',
>  `speaker_freq` varchar(50) NOT NULL default '',
>  `speaker_signal_noise` varchar(50) NOT NULL default '',
>  `mon_type` varchar(15) NOT NULL default '',
>  `mon_diag` varchar(25) NOT NULL default '',
>  `mon_max_res` varchar(25) NOT NULL default '',
>  `case_type` varchar(45) NOT NULL default '',
>  `car_power` varchar(15) NOT NULL default '',
>  `md_tip` varchar(15) NOT NULL default '',
>  `md_bla` varchar(15) NOT NULL default '',
>  `md_model` varchar(15) NOT NULL default '',
>  `kb_model` varchar(30) NOT NULL default '',
>  `kb_conection` varchar(25) NOT NULL default '',
>  `conex` varchar(30) NOT NULL default '',
>  `print_tip` varchar(30) NOT NULL default '',
>  `print_tip_pagina` varchar(30) NOT NULL default '',
>  `print_speed` varchar(80) NOT NULL default '',
>  `pv_chipset` varchar(50) NOT NULL default '',
>  `pv_mem` varchar(50) NOT NULL default '',
>  `pv_tip_mem` varchar(50) NOT NULL default '',
>  `scan_tip` varchar(20) NOT NULL default '',
>  `scan_interface` varchar(20) NOT NULL default '',
>  `scan_resolution` varchar(20) NOT NULL default '',
>  `scan_colors` varchar(30) NOT NULL default '',
>  `scan_paper` varchar(30) NOT NULL default '',
>  PRIMARY KEY  (`prod_id`)
>) TYPE=MyISAM;
>
>  
>
>
>  
>


More information about the thelist mailing list