Hi,
ich würde gerne wissen was genau ein duplicate key name bei der Vergabe von Foreign Keys ist.
Meine DB sieht folgendermaßen aus:
Ich hab mir dabei folgendes gedacht, bitte korrigiert mich wenn ich falsch liege:
Die Tabelle content steht für den Content meiner Homepage.
Die Tabelle ctype enthält contenttypen (administrative -> Layout bezogene, Navigation etc..., beiträge -> Beiträge zu diversen Projekten von mir etc...)
Die Tabelle user enthält die infos über die einzelnen user und deren berechtigungen.
Ich denke mir das ein User mehrere Beiträge erfassen kann also würde ich den Foreign Key auf content(uid) mit der Referenz auf user(id) legen um dies zu erreichen.
Ein ctype kann zu mehrere beiträge gehören aber nur ein beitrag zu einem ctype (möglicherweise ist auch hier der Fehler warum die Foreign Key Zuweisung nicht stimmt).
Wenn ich diese beiden Foreign Keys setze bekomme ich jedoch die Fehlermeldung: "ERROR 1061 (42000): Duplicate key name 'content'".
Was mach ich hier falsch und was bedeutet diese Fehlermeldung genau?
Danke schon mal für eure Hilfe!
mfg
Maks
ich würde gerne wissen was genau ein duplicate key name bei der Vergabe von Foreign Keys ist.
Meine DB sieht folgendermaßen aus:
Code:
DROP DATABASE IF EXISTS main;
CREATE DATABASE main ;
use main;
CREATE TABLE user (
ip varchar(15),
id int(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
username varchar(30) NOT NULL,
vname varchar(30),
nname varchar(40),
birthdate date,
country varchar(100),
language varchar(2),
avatar varchar(100),
registration_date date,
access_stat int(1)
) engine=InnoDB;
## access_stat
/*
0... admin
1... user
*/
CREATE TABLE ctype (
id int(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
elementid int(2) NOT NULL,
elementname varchar(50) NOT NULL,
elementdesc varchar(100) NOT NULL,
creationdate date
) engine=InnoDB;
CREATE TABLE content (
id int(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
uid int(10) NOT NULL,
cid int(10) NOT NULL,
value text(2500) NOT NULL,
creationdate date NOT NULL
) engine=InnoDB;
ALTER TABLE content ADD FOREIGN KEY content(cid) REFERENCES ctype(id);
ALTER TABLE content ADD FOREIGN KEY content(uid) REFERENCES user(id);
Ich hab mir dabei folgendes gedacht, bitte korrigiert mich wenn ich falsch liege:
Die Tabelle content steht für den Content meiner Homepage.
Die Tabelle ctype enthält contenttypen (administrative -> Layout bezogene, Navigation etc..., beiträge -> Beiträge zu diversen Projekten von mir etc...)
Die Tabelle user enthält die infos über die einzelnen user und deren berechtigungen.
Ich denke mir das ein User mehrere Beiträge erfassen kann also würde ich den Foreign Key auf content(uid) mit der Referenz auf user(id) legen um dies zu erreichen.
Ein ctype kann zu mehrere beiträge gehören aber nur ein beitrag zu einem ctype (möglicherweise ist auch hier der Fehler warum die Foreign Key Zuweisung nicht stimmt).
Wenn ich diese beiden Foreign Keys setze bekomme ich jedoch die Fehlermeldung: "ERROR 1061 (42000): Duplicate key name 'content'".
Was mach ich hier falsch und was bedeutet diese Fehlermeldung genau?
Danke schon mal für eure Hilfe!
mfg
Maks