2010-10-04 56 views
1

我在創建表&外鍵時遇到問題。 (錯誤:150) 這裏是一個截圖更新的圖像:http://img264.imagevenue.com/img.php?image=14866_db_122_223lo.jpgMySql:創建表和外鍵的簡單問題

也許問題是數據庫設計。

-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_user` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`projekt_user` (
    `UserID` INT NOT NULL , 
    `Name` VARCHAR(45) NULL , 
    PRIMARY KEY (`UserID`)) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_auswahl` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`projekt_auswahl` (
    `UserID` INT NOT NULL , 
    `projekt_id` INT NOT NULL , 
    `projekt_kategorie_id` INT NOT NULL , 
    `projekt_attachment` VARCHAR(45) NULL , 
    PRIMARY KEY (`UserID`, `projekt_id`, `projekt_kategorie_id`) , 
    INDEX `UserID` (`UserID` ASC) , 
    CONSTRAINT `UserID` 
    FOREIGN KEY (`UserID`) 
    REFERENCES `mydb`.`projekt_user` (`UserID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_kategorien` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`projekt_kategorien` (
    `projekt_kategorie_id` INT NOT NULL , 
    `kategorie` VARCHAR(45) NULL , 
    PRIMARY KEY (`projekt_kategorie_id`) , 
    INDEX `projekt_kategorie_id` (`projekt_kategorie_id` ASC) , 
    CONSTRAINT `projekt_kategorie_id` 
    FOREIGN KEY (`projekt_kategorie_id`) 
    REFERENCES `mydb`.`projekt_auswahl` (`projekt_kategorie_id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 


-- ----------------------------------------------------- 
-- Table `mydb`.`projekte` 
-- ----------------------------------------------------- 
CREATE TABLE `projekte` (
    `projekt_id` INT NOT NULL , 
    `projektname` VARCHAR(45) NULL , 
    `projekt_status` VARCHAR(45) NULL , 
    PRIMARY KEY (`projekt_id`) , 
    INDEX `projekt_id` (`projekt_id` ASC) , 
    CONSTRAINT `projekt_id` 
    FOREIGN KEY (`projekt_id`) 
    REFERENCES `mydb`.`projekt_auswahl` (`projekt_id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 
+0

在此服務器上未找到請求的URL /aAfkjfp01fo1i-16490/loc901/14094_db_122_901lo.jpg。 – Wrikken 2010-10-04 18:24:03

+0

圖片網址更新 – elmanino 2010-10-04 18:26:26

回答

1

你在錯誤的方向你的外鍵,並且需要加載順序表(前兒童家長):

-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_user` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`projekt_user` (
    `UserID` INT NOT NULL , 
    `Name` VARCHAR(45) NULL , 
    PRIMARY KEY (`UserID`)) 
ENGINE = InnoDB; 

-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_kategorien` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `mydb`.`projekt_kategorien` (
    `projekt_kategorie_id` INT NOT NULL , 
    `kategorie` VARCHAR(45) NULL , 
    PRIMARY KEY (`projekt_kategorie_id`) , 
    INDEX `projekt_kategorie_id` (`projekt_kategorie_id` ASC) 
ENGINE = InnoDB; 

-- ----------------------------------------------------- 
-- Table `mydb`.`projekte` 
-- ----------------------------------------------------- 
CREATE TABLE `projekte` (
    `projekt_id` INT NOT NULL , 
    `projektname` VARCHAR(45) NULL , 
    `projekt_status` VARCHAR(45) NULL , 
    PRIMARY KEY (`projekt_id`) , 
    INDEX `projekt_id` (`projekt_id` ASC)) 
ENGINE = InnoDB; 

-- ----------------------------------------------------- 
-- Table `mydb`.`projekt_auswahl` 
-- ----------------------------------------------------- 
CREATE TABLE IF NOT EXISTS `projekt_auswahl` (
    `UserID` INT NOT NULL , 
    `projekt_id` INT NOT NULL , 
    `projekt_kategorie_id` INT NOT NULL , 
    `projekt_attachment` VARCHAR(45) NULL , 
    PRIMARY KEY (`UserID`, `projekt_id`, `projekt_kategorie_id`) , 
    INDEX `UserID` (`UserID` ASC) , 
    CONSTRAINT `UserID` 
    FOREIGN KEY (`UserID`) 
    REFERENCES `projekt_user` (`UserID`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
CONSTRAINT `projekt_kategorie_id` 
    FOREIGN KEY (`projekt_kategorie_id`) 
    REFERENCES `projekt_kategorien` (`projekt_kategorie_id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION, 
CONSTRAINT `projekt_id` 
    FOREIGN KEY (`projekt_id`) 
    REFERENCES `projekte` (`projekt_id`) 
    ON DELETE NO ACTION 
    ON UPDATE NO ACTION) 
ENGINE = InnoDB; 

如果我更注重你所提供的ERD,我我們已經看到,「烏鴉腳」向上,當約定是他們總是指向下(如果有必要,左邊)。

+0

謝謝!你太棒了! – elmanino 2010-10-04 18:57:09

+0

@elmanino:謝謝 - 非常容易使用您提供的腳本進行診斷。 – 2010-10-04 19:14:02