簡體   English   中英

如何 ER 圖 MYSQL

[英]How to ER Diagram MYSQL

我正在嘗試在 mysql 中創建簡單的庫數據庫。 我有 5 桌學生,條目,書籍,打字本,作者。 當我嘗試使用 mysql 逆向工程制作 er 圖時,我的表在 er 圖上沒有任何關系。 但是幾乎每個數據庫都在互聯網上的er圖上有關系。 我做錯了什么以及如何解決?

CREATE TABLE student(
`stuNo` INT NOT NULL,
`stuname` VARCHAR(45) NULL,
`stusurname` VARCHAR(45) NULL,
`class` INT NULL,
`age` INT NULL,
PRIMARY KEY (`stuNo`));

 CREATE TABLE entry(
`stuNo` INT NOT NULL,
`entryno` INT NOT NULL,
`bookno` INT NOT NULL,
`borrowdate` DATE NULL,
`returndate` DATE NULL,
PRIMARY KEY (`bookno`));

 CREATE TABLE book(
`bookno` INT NOT NULL,
`bookname` VARCHAR(45) NULL,
 `authorno` INT NOT NULL,
`typeno` INT NOT NULL,
PRIMARY KEY (authorno , typeno));

 CREATE TABLE  typebook (
`typeno` INT NOT NULL,
`typename` VARCHAR(45) NULL,
PRIMARY KEY (`typeno`));

 CREATE TABLE author(
`authorno` INT NOT NULL,
`authorname` VARCHAR(45) NULL,
`autorname` VARCHAR(45) NULL,
PRIMARY KEY (`authorno`));

在此處輸入圖像描述

我不得不切換 CREATE TABLE 的順序

改變的是您必須插入數據的順序。 例如

如果您想插入一本書,您首先必須插入對應於該書的 typebook 和 authoir,依此類推。

CREATE TABLE student(
`stuNo` INT NOT NULL,
`stuname` VARCHAR(45) NULL,
`stusurname` VARCHAR(45) NULL,
`class` INT NULL,
`age` INT NULL,
PRIMARY KEY (`stuNo`));

 CREATE TABLE  typebook (
`typeno` INT NOT NULL,
`typename` VARCHAR(45) NULL,
PRIMARY KEY (`typeno`));

 CREATE TABLE author(
`authorno` INT NOT NULL,
`authorname` VARCHAR(45) NULL,
`autorname` VARCHAR(45) NULL,
PRIMARY KEY (`authorno`));

CREATE TABLE book(
`bookno` INT NOT NULL,
`bookname` VARCHAR(45) NULL,
 `authorno` INT NOT NULL,
`typeno` INT NOT NULL,
PRIMARY KEY (authorno , typeno),
INDEX(bookno),
FOREIGN KEY (typeno)
        REFERENCES typebook(typeno),
FOREIGN KEY (authorno)
        REFERENCES author(authorno));

 CREATE TABLE entry(
`stuNo` INT NOT NULL,
`entryno` INT NOT NULL,
`bookno` INT NOT NULL,
`borrowdate` DATE NULL,
`returndate` DATE NULL,
PRIMARY KEY (`bookno`),
FOREIGN KEY (stuNo)
        REFERENCES student(stuNo),
FOREIGN KEY (bookno)
        REFERENCES book(bookno)
        );

結果是在此處輸入圖像描述

問題是您的表沒有設置任何FOREIGN KEYS MySQL 不知道一個表中的authorno列應該鏈接到另一個表中的authorno列。 因此不會生成任何關系鏈接。

要生成到 ER 圖的關系鏈接,您必須在CREATE TABLE查詢中使用FOREIGN KEY條目來指定一個表中的哪一列正在引用另一表中的一列:

CREATE TABLE author(
    `authorno` INT NOT NULL,
    `authorname` VARCHAR(45) NULL,
    `autorname` VARCHAR(45) NULL,
    PRIMARY KEY (`authorno`)
);

CREATE TABLE book(
    `bookno` INT NOT NULL,
    `bookname` VARCHAR(45) NULL,
    `authorno` INT NOT NULL,
    `typeno` INT NOT NULL,
    PRIMARY KEY (bookno),
    FOREIGN KEY (authorno) REFERENCES author(authorno)
);

通過添加FOREIGN KEY條目 MySQL 現在知道book中的authorno列必須引用author表的authorno列中的值。 生成 ER 圖時,您應該獲取表之間的線以查看關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM