借助AI快速绘制 E-R 图
Eg:
先让任意的AI根据题目要求生成E-R模型,并将E-R模型转换为关系模型
然后让AI使用标准的mysql语句给出数据库结构,并给出中文注释
就可以得到
-- 创建数据库
CREATE DATABASE IF NOT EXISTS `order_management` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 使用数据库
USE `order_management`;
-- 创建客户表
CREATE TABLE `customers` (
`customer_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '客户ID',
`customer_name` VARCHAR(255) NOT NULL COMMENT '客户姓名',
`contact_info` VARCHAR(255) NULL DEFAULT NULL COMMENT '联系方式',
`id_number` VARCHAR(50) NULL DEFAULT NULL COMMENT '证件号码',
`address` VARCHAR(255) NULL DEFAULT NULL COMMENT '客户地址',
PRIMARY KEY (`customer_id`) USING BTREE
) ENGINE = InnoDB COMMENT = '客户表';
-- 创建订单表
CREATE TABLE `orders` (
`order_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '订单ID',
`order_date` DATE NOT NULL COMMENT '订单日期',
`total_amount` DECIMAL(10, 2) NOT NULL DEFAULT 0.00 COMMENT '订单总金额',
`customer_id` INT(11) NOT NULL COMMENT '客户ID',
PRIMARY KEY (`order_id`) USING BTREE,
CONSTRAINT `fk_customer_order` FOREIGN KEY (`customer_id`)
REFERENCES `customers` (`customer_id`) ON DELETE CASCADE
) ENGINE = InnoDB COMMENT = '订单表';
-- 创建部件表
CREATE TABLE `parts` (
`part_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '部件ID',
`part_name` VARCHAR(255) NOT NULL COMMENT '部件名称',
`description` TEXT NULL DEFAULT NULL COMMENT '部件描述',
`unit_price` DECIMAL(10, 2) NOT NULL DEFAULT 0.00 COMMENT '部件单价',
`quantity` INT(11) NOT NULL DEFAULT 0 COMMENT '部件库存数量',
`total_price` DECIMAL(10, 2) GENERATED ALWAYS AS (`unit_price` * `quantity`) STORED COMMENT '部件合计价格',
PRIMARY KEY (`part_id`) USING BTREE
) ENGINE = InnoDB COMMENT = '部件表';
-- 创建订单与部件关联表
CREATE TABLE `order_parts` (
`order_id` INT(11) NOT NULL COMMENT '订单ID',
`part_id` INT(11) NOT NULL COMMENT '部件ID',
`quantity` INT(11) NOT NULL DEFAULT 1 COMMENT '部件数量',
PRIMARY KEY (`order_id`, `part_id`) USING BTREE,
CONSTRAINT `fk_order_part_order` FOREIGN KEY (`order_id`)
REFERENCES `orders` (`order_id`) ON DELETE CASCADE,
CONSTRAINT `fk_order_part_part` FOREIGN KEY (`part_id`)
REFERENCES `parts` (`part_id`) ON DELETE CASCADE
) ENGINE = InnoDB COMMENT = '订单与部件关联表';
然后去SQL转ER图工具在线网站:https://generator.cengxuyuan.cn/sql2er
SQL转ER图工具在线网站

我们需要对图表样式进行设置


然后输入自己的SQL语句,点击生成E-R图
如果显示“检查一下SQL格式是否符合要求”
可以让AI再重新生成sql语句:
请定义好实体和属性以及关系定义,并再完善sql语句
或者
为了确保正确生成ER图,SQL建表语句需要遵循以下格式规范:
表名和字段名: 使用反引号(`)包围,例如:`user_info`、`user_id`
字段定义:
明确指定字段类型和长度,如:VARCHAR(50)、INT(11)
使用NOT NULL或NULL声明是否允许为空
可以使用DEFAULT设置默认值
建议为每个字段添加COMMENT注释
主键定义: 使用PRIMARY KEY在字段列表最后声明,例如:
PRIMARY KEY (`id`) USING BTREE
外键关系: 使用CONSTRAINT和FOREIGN KEY定义表之间的关系,例如:
CONSTRAINT `fk_user_role` FOREIGN KEY (`user_id`)
REFERENCES `user` (`id`) ON DELETE CASCADE
表注释: 在表定义的最后使用COMMENT添加表说明,例如:
ENGINE = InnoDB COMMENT = '用户表';
完整的建表语句示例:
CREATE TABLE `user_info` (
`user_id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`email` VARCHAR(100) NULL DEFAULT NULL COMMENT '邮箱',
`status` TINYINT(1) NOT NULL DEFAULT 1 COMMENT '状态',
`create_time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE = InnoDB COMMENT = '用户信息表';
注意事项:
生成的图片不符合预期时,可以尝试调整图片样式,如果没有相关配置选项,请反馈。
在开启外键关联显示下,如果SQL中有外键,请确保外键关联的表也存在。比如学生关联班级,请确保学生表和班级表同时出现。如果学生表中有外键关联班级表,班级表不存在则无法生成。
根据以上要求,再重新给出完整的代码
如果有插入数据的sql语句则不要复制
再去SQL转ER图在线工具里粘贴代码,生成E-R图

浙公网安备 33010602011771号