Hallo Timo,
immer wenn es die Anforderung einer Mehrfachbenennung gibt oder möglich ist, wird eine 1:N Beziehnung (Master-Detail-Tabelle) notwendig.
Beispiel (InnoDB vorausgesetzt wegen Fremdschlüsselbeziehungen)
CREATE TABLE mitglied (
mitglied_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
vorname VARCHAR(50) NOT NULL,
PRIMARY KEY (mitglied_id)
);
CREATE TABLE sprache (
sprache_id INT NOT NULL AUTO_INCREMENT,
sprache VARCHAR(50) NOT NULL,
PRIMARY KEY (sprache_id)
);
CREATE TABLE mitglied_wohnort (
mwohnort_id INT NOT NULL AUTO_INCREMENT,
mitglied_id INT NOT NULL,
ort VARCHAR(50) NOT NULL,
PRIMARY KEY (mwohnort_id),
CONSTRAINT fk_mitglied_wohnort
FOREIGN KEY (mitglied_id)
REFERENCES mitglied (mitglied_id)
);
CREATE TABLE mitglied_sprache (
msprache_id INT NOT NULL AUTO_INCREMENT,
mitglied_id INT NOT NULL,
sprache_id INT NOT NULL,
PRIMARY KEY (msprache_id),
CONSTRAINT fk_mitglied_sprache
FOREIGN KEY (mitglied_id)
REFERENCES mitglied (mitglied_id),
CONSTRAINT fk_mitglied_sprache2
FOREIGN KEY (sprache_id)
REFERENCES sprache (sprache_id)
);
Grüße
Thomas
--
Die SQL-Backstube
http://www.twiedmann.de/sqlbackstube/index
Edited 2 time(s). Last edit at 05/29/2011 10:09AM by Thomas Wiedmann.