mysql - 如何绘制MYSQL ER图

标签 mysql entity-relationship erd

我正在尝试在 mysql 中创建简单的图书馆数据库。我有 5 个表:students、entry、book、typebook、author。当我尝试使用 mysql 逆向工程制作 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`));

enter image description here

最佳答案

我必须切换 CREATE TABLE 的顺序

改变的是插入数据的顺序。 例如

如果你想插入一本书,你首先必须插入与该书相对应的打字簿和作者等等。

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)
        );

结果为 enter image description here

关于mysql - 如何绘制MYSQL ER图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61980313/

相关文章:

sql - GROUP BY、ORDER BY - 如何根据项目的最新外观进行分组

php - 如何删除供应商表中的特定行数据导致错误是当我使用订单时删除了数据库中的所有供应商数据

PHP 发布 <a href> 导致插入错误

sql - Entity Framework 代码第一类,其父类和子类的类型与其自己的类相同

mysql - 表可以使用父表的FK作为PK

uml - 将 ERD 转换为类图

database - 如何让用户更改地址而不影响订单中的同一个地址?

mysql - 如何根据查询从组中获取基于最新日期的最高价格

many-to-many - SaveChanges() Entity Framework 4.1 的问题

mysql - 按实体或垂直按数据级别组织数据库表?