Hallo Miteinander,
ich habe folgende Tabellen
CREATE TABLE `test`.`kunden` (
`kunden_id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`kunden_vorname` VARCHAR( 25 ) NOT NULL ,
`kunden_nachname` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `test`.`optionen` (
`option_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`option_beschreibung` VARCHAR( 100 ) NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `test`.`kunden_optionen` (
`kunden_id` MEDIUMINT UNSIGNED NOT NULL ,
`option_id` SMALLINT UNSIGNED NOT NULL ,
`option_wert` VARCHAR( 10 ) NOT NULL
) ENGINE = MYISAM ;
Angenommen es sind 2000 Kunden, von denen sich jeder aus 500 möglichen Optionen je 100 Stück Auswählt. Dann hätte die Tabelle kunden_optionen 20000 Einträge.
Eine Abfrage würde zum Beispiel so aussehen:
SELECT optionen.option_beschreibung, kunden_optionen.option_wert
FROM `kunden_optionen`
LEFT JOIN optionen ON optionen.option_id = kunden_optionen.option_id
WHERE kunden_id = '1'
oder so
SELECT optionen.option_beschreibung, kunden_optionen.option_wert
FROM optionen, `kunden_optionen`
WHERE kunden_id = '1'
AND optionen.option_id = kunden_optionen.option_id
Nun meine Frage, sollte man in der Tabelle kunden_option einen Index erstellen? Ich denke das die Tabelle bereits durch die kunden_id und option_id indiziert sein müßte.
ich habe folgende Tabellen
CREATE TABLE `test`.`kunden` (
`kunden_id` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`kunden_vorname` VARCHAR( 25 ) NOT NULL ,
`kunden_nachname` VARCHAR( 25 ) NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `test`.`optionen` (
`option_id` SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`option_beschreibung` VARCHAR( 100 ) NOT NULL
) ENGINE = MYISAM ;
CREATE TABLE `test`.`kunden_optionen` (
`kunden_id` MEDIUMINT UNSIGNED NOT NULL ,
`option_id` SMALLINT UNSIGNED NOT NULL ,
`option_wert` VARCHAR( 10 ) NOT NULL
) ENGINE = MYISAM ;
Angenommen es sind 2000 Kunden, von denen sich jeder aus 500 möglichen Optionen je 100 Stück Auswählt. Dann hätte die Tabelle kunden_optionen 20000 Einträge.
Eine Abfrage würde zum Beispiel so aussehen:
SELECT optionen.option_beschreibung, kunden_optionen.option_wert
FROM `kunden_optionen`
LEFT JOIN optionen ON optionen.option_id = kunden_optionen.option_id
WHERE kunden_id = '1'
oder so
SELECT optionen.option_beschreibung, kunden_optionen.option_wert
FROM optionen, `kunden_optionen`
WHERE kunden_id = '1'
AND optionen.option_id = kunden_optionen.option_id
Nun meine Frage, sollte man in der Tabelle kunden_option einen Index erstellen? Ich denke das die Tabelle bereits durch die kunden_id und option_id indiziert sein müßte.
Comment