phpbar.de logo

Mailinglisten-Archive

Konzeptionsfrage.

Konzeptionsfrage.

Cybot 4t2.com-mysql at tekkno4u.de
Don Jul 10 13:49:35 CEST 2003


> Möglichkeit 1.
> (1, 'corn, cotton, potato', 'Roots');
> (2, 'sorghum, corn, cotton, potato', 'Stem');
> (3, 'sorghum, corn, cotton potato', 'Leaves');
> 
> Möglichkeit 2.
> Die Tabelle sähe dann in etwa so aus
> (1, 'corn', 'Roots');
> (2, 'cotton', 'Roots');
> (3, 'potato', 'Roots');
> (4, 'sorghum', 'Stem');
> (5, 'corn,', 'Stem');
> (6, 'cotton', 'Stem');
> (7,'potato', 'Stem');

also die zwiete ist auf jeden fall die bessere, weil schneller und 
logischer, außerdem enstpricht sie eher einer normalform! --> siehe 
normalisierung von datenbanken und atomare daten

schneller ist sie weil du bei einer suche nach 'corn' in der 1. ein 
"LIKE '%corn%'" machen müsstest was wesentlich langsamer ist als ein
"= 'corn'" - auch mit volltext-indizes

den index kannst du dir sparen der wird eh nicht verwendet
du bräuchtst dann ein PRIMARY über beide spalten

und eventuell noch ein indiz auf die zweite spalte

so z.b.:

CREATE TABLE `pflanzenteile` (
   `keyword` varchar(50) NOT NULL default '',
   `section` varchar(50) NOT NULL default '',
   PRIMARY KEY  (`keyword`,`section`),
   KEY `section` (`section`)
) TYPE=MyISAM;

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive