hstoellinger
Benutzer
- Beiträge
- 8
Guten Abend!
Kann mir jemand sagen, was ich bei der Definition der Foreign Keys zwischen den untenstehenden zwei Tabellen
falsch mache:
Tabelle (1):
CREATE TABLE stuecke
(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique record ID.',
heft_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 'ID des Hefts für das Stück.',
seite int(11) NOT NULL DEFAULT 0,
titel varchar(255) NOT NULL DEFAULT '' COMMENT 'der Stücktitel',
genre_id int(11) NOT NULL DEFAULT 0,
szene_id int(11) NOT NULL DEFAULT 0,
status_id int(11) NOT NULL DEFAULT 0,
verlag_id int(11) NOT NULL DEFAULT 0,
komponist_id int(11) NOT NULL DEFAULT 0,
arrangeur_id int(11) NOT NULL DEFAULT 0,
arrangement_id int(11) NOT NULL DEFAULT 0,
besetzung_id int(11) NOT NULL DEFAULT 0,
tonartabfolge varchar(64) NOT NULL DEFAULT '' COMMENT 'die Abfolge der Tonart (z.B. bei Volksmusikstücken)',
bemerkung varchar(255) NOT NULL DEFAULT '' COMMENT 'Allgemeine Bemerkungen',
PRIMARY KEY (id),
KEY titel (titel(191)),
FOREIGN KEY (heft_id) REFERENCES hefte(id),
FOREIGN KEY (szene_id) REFERENCES szenen(id),
FOREIGN KEY (status_id) REFERENCES status(id),
FOREIGN KEY (verlag_id) REFERENCES verlage(id),
FOREIGN KEY (komponist_id) REFERENCES komponisten(id),
FOREIGN KEY (arrangeur_id) REFERENCES arrangeure(id),
FOREIGN KEY (arrangement_id) REFERENCES arrangements(id),
FOREIGN KEY (besetzung_id) REFERENCES besetzungen(id)
)
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB
;
Tabelle (2):
use musikdb;
DROP TABLE if exists ausgaben;
CREATE TABLE ausgaben
(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique record ID.',
stck_id int(11) unsigned NOT NULL COMMENT 'Stueck-ID',
heft_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 'ID des Hefts für das Stück.',
seite int(11) NOT NULL DEFAULT 0,
status_id int(11) NOT NULL DEFAULT 0,
verlag_id int(11) NOT NULL DEFAULT 0,
arrangeur_id int(11) NOT NULL DEFAULT 0,
arrangement_id int(11) NOT NULL DEFAULT 0,
besetzung_id int(11) NOT NULL DEFAULT 0,
tonartabfolge varchar(64) NOT NULL DEFAULT '' COMMENT 'die Abfolge der Tonart (z.B. bei Volksmusikstücken)',
bemerkung varchar(255) NOT NULL DEFAULT '' COMMENT 'Allgemeine Bemerkungen',
PRIMARY KEY (id),
FOREIGN KEY (stck_id) REFERENCES stuecke(id),
FOREIGN KEY (heft_id) REFERENCES hefte(id),
FOREIGN KEY (status_id) REFERENCES status(id),
FOREIGN KEY (verlag_id) REFERENCES verlage(id),
FOREIGN KEY (arrangeur_id) REFERENCES arrangeure(id),
FOREIGN KEY (arrangement_id) REFERENCES arrangements(id),
FOREIGN KEY (besetzung_id) REFERENCES besetzungen(id)
)
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB
;
Die erste Tabelle existiert natürlich bereits.
Danke für gute Hinweise.
H. Stöllinger
Kann mir jemand sagen, was ich bei der Definition der Foreign Keys zwischen den untenstehenden zwei Tabellen
falsch mache:
Tabelle (1):
CREATE TABLE stuecke
(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique record ID.',
heft_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 'ID des Hefts für das Stück.',
seite int(11) NOT NULL DEFAULT 0,
titel varchar(255) NOT NULL DEFAULT '' COMMENT 'der Stücktitel',
genre_id int(11) NOT NULL DEFAULT 0,
szene_id int(11) NOT NULL DEFAULT 0,
status_id int(11) NOT NULL DEFAULT 0,
verlag_id int(11) NOT NULL DEFAULT 0,
komponist_id int(11) NOT NULL DEFAULT 0,
arrangeur_id int(11) NOT NULL DEFAULT 0,
arrangement_id int(11) NOT NULL DEFAULT 0,
besetzung_id int(11) NOT NULL DEFAULT 0,
tonartabfolge varchar(64) NOT NULL DEFAULT '' COMMENT 'die Abfolge der Tonart (z.B. bei Volksmusikstücken)',
bemerkung varchar(255) NOT NULL DEFAULT '' COMMENT 'Allgemeine Bemerkungen',
PRIMARY KEY (id),
KEY titel (titel(191)),
FOREIGN KEY (heft_id) REFERENCES hefte(id),
FOREIGN KEY (szene_id) REFERENCES szenen(id),
FOREIGN KEY (status_id) REFERENCES status(id),
FOREIGN KEY (verlag_id) REFERENCES verlage(id),
FOREIGN KEY (komponist_id) REFERENCES komponisten(id),
FOREIGN KEY (arrangeur_id) REFERENCES arrangeure(id),
FOREIGN KEY (arrangement_id) REFERENCES arrangements(id),
FOREIGN KEY (besetzung_id) REFERENCES besetzungen(id)
)
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB
;
Tabelle (2):
use musikdb;
DROP TABLE if exists ausgaben;
CREATE TABLE ausgaben
(
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary Key: Unique record ID.',
stck_id int(11) unsigned NOT NULL COMMENT 'Stueck-ID',
heft_id int(11) unsigned NOT NULL DEFAULT 0 COMMENT 'ID des Hefts für das Stück.',
seite int(11) NOT NULL DEFAULT 0,
status_id int(11) NOT NULL DEFAULT 0,
verlag_id int(11) NOT NULL DEFAULT 0,
arrangeur_id int(11) NOT NULL DEFAULT 0,
arrangement_id int(11) NOT NULL DEFAULT 0,
besetzung_id int(11) NOT NULL DEFAULT 0,
tonartabfolge varchar(64) NOT NULL DEFAULT '' COMMENT 'die Abfolge der Tonart (z.B. bei Volksmusikstücken)',
bemerkung varchar(255) NOT NULL DEFAULT '' COMMENT 'Allgemeine Bemerkungen',
PRIMARY KEY (id),
FOREIGN KEY (stck_id) REFERENCES stuecke(id),
FOREIGN KEY (heft_id) REFERENCES hefte(id),
FOREIGN KEY (status_id) REFERENCES status(id),
FOREIGN KEY (verlag_id) REFERENCES verlage(id),
FOREIGN KEY (arrangeur_id) REFERENCES arrangeure(id),
FOREIGN KEY (arrangement_id) REFERENCES arrangements(id),
FOREIGN KEY (besetzung_id) REFERENCES besetzungen(id)
)
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB
;
Die erste Tabelle existiert natürlich bereits.
Danke für gute Hinweise.
H. Stöllinger