【MySQL数据库】--借助AI快速画数据库ER图

我在开发一个地质勘探标注工具,需要设计数据库表,你可以直接把你的需求告诉AI:

https://www.qianwen.com/chat/744382cfc96f48c1819d6a3b3373d9cd?source=tongyigw

目录

1.明确需求

2.生成SQL语句

3.工具生成ER图


1.明确需求

我现在在开发一个地质勘探标注工具,请帮我根据下面的设计画一个mysql数据库的ER图,各表字段生成一个表格

  1. 标注功能技术实现方案​​

​​AI标注​​:AI生成的标注结果可提供"保存"按钮,将JSON格式的结果存入独立的标注数据表中,该表需关联主图ID。

​​人工标注​​:支持对主图进行人工标注,同时可处理子图。子图信息可作为主图JSON的一部分进行统一保存,或单独存入子图表中。

​​图片管理​​:上传的图片将存储至数据库,可采用存储图片编码或存储文件路径的方式。建议在图片信息表中增加上传者ID和标注者ID字段,为后续的用户权限管理做准备。

就是要知道需求是什么,需要哪些表

  1. 图片表(picture)

|-------------|--------------|---------------------------|
| 字段名 | 数据类型 | 约束/说明 |
| picture_id | INT | 主键,自增 |
| filename | VARCHAR(255) | 原始文件名(可选) |
| uploader_id | INT | 外键,关联用户表(上传者) |
| upload_time | DATETIME | 上传时间,默认 CURRENT_TIMESTAMP |
| status | TINYINT | 图片状态(如:0-待标注,1-已标注等) |

  1. AI 标注表(ai_annotation)

|------------------|--------------|--------------------------|
| 字段名 | 数据类型 | 约束/说明 |
| ai_annotation_id | INT | 主键,自增 |
| picture_id | INT | 外键,关联 picture.picture_id |
| model_version | VARCHAR(50) | 使用的AI模型(用于追踪) |
| annotation_data | JSON | AI生成的标注结果,结构同人工标注(含子图框) |
| created_at | DATETIME | 生成时间 |

  1. 人工标注表(manual_annotation)

|----------------------|--------------|----------------------------------------|
| 字段名 | 数据类型 | 约束/说明 |
| manual_annotation_id | INT | 主键,自增,唯一标识每个子图标注 |
| picture_id | INT | 外键,关联主图(picture.picture_id) |
| annotator_id | INT | 外键,标注人用户 ID |
| label | Json | 地质类别标签(如 "fault", "fold", "stratum" 等) |
| subimage_name | VARCHAR(255) | 裁剪后子图的存储名字(abc123.jpg) |
| updated_at | DATETIME | 最后更新时间 |

  1. 完整标注表(complete_annotation)

|------------------------|--------------|----------------------------------------|
| 字段名 | 数据类型 | 约束/说明 |
| complete_annotation_id | INT | 主键,自增 |
| picture_id | INT | 外键,关联 picture.picture_id,唯一(一张图一个完整标注) |
| final_data | JSON | 最终合并后的标注数据(格式统一,含所有子图) |
| created_by | INT | 最终确认人(用户ID) |
| created_at | DATETIME | 确认时间 |

  1. 用户表(user)

|---------------|--------------------------------------------------|-----------------|
| 字段名 | 数据类型 | 约束 / 说明 |
| user_id | INT | 主键,自增,唯一标识用户 |
| username | VARCHAR(100) | 唯一,登录用户名(不可重复) |
| password_hash | VARCHAR(255) | 密码 |
| role | ENUM('admin', 'annotator', 'uploader', 'viewer') | 用户角色,控制权限 |

2.生成SQL语句

根据表,生成sql:

1.图片表(picture)

字段名 数据类型 约束/说明

picture_id INT 主键,自增

filename VARCHAR(255) 原始文件名(可选)

uploader_id INT 外键,关联用户表(上传者)

upload_time DATETIME 上传时间,默认 CURRENT_TIMESTAMP

status TINYINT 图片状态(如:0-待标注,1-已标注等)

2.AI 标注表(ai_annotation)

字段名 数据类型 约束/说明

ai_annotation_id INT 主键,自增

picture_id INT 外键,关联 picture.picture_id

model_version VARCHAR(50) 使用的AI模型(用于追踪)

annotation_data JSON AI生成的标注结果,结构同人工标注(含子图框)

created_at DATETIME 生成时间

3.人工标注表(manual_annotation)

字段名 数据类型 约束/说明

manual_annotation_id INT 主键,自增,唯一标识每个子图标注

picture_id INT 外键,关联主图(picture.picture_id)

annotator_id INT 外键,标注人用户 ID

label Json 地质类别标签(如 "fault", "fold", "stratum" 等)

subimage_name VARCHAR(255) 裁剪后子图的存储名字(abc123.jpg)

updated_at DATETIME 最后更新时间

4.完整标注表(complete_annotation)

字段名 数据类型 约束/说明

complete_annotation_id INT 主键,自增

picture_id INT 外键,关联 picture.picture_id,唯一(一张图一个完整标注)

final_data JSON 最终合并后的标注数据(格式统一,含所有子图)

created_by INT 最终确认人(用户ID)

created_at DATETIME 确认时间

sql 复制代码
-- 5. 用户表(user)
CREATE TABLE user (
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(100) NOT NULL UNIQUE,
    password_hash VARCHAR(255) NOT NULL,
    role ENUM('admin', 'annotator', 'uploader', 'viewer') NOT NULL
);

-- 1. 图片表(picture)
CREATE TABLE picture (
    picture_id INT AUTO_INCREMENT PRIMARY KEY,
    filename VARCHAR(255),
    uploader_id INT NOT NULL,
    upload_time DATETIME DEFAULT CURRENT_TIMESTAMP,
    status TINYINT NOT NULL DEFAULT 0 COMMENT '0-待标注, 1-已标注等',
    FOREIGN KEY (uploader_id) REFERENCES user(user_id)
);

-- 2. AI 标注表(ai_annotation)
CREATE TABLE ai_annotation (
    ai_annotation_id INT AUTO_INCREMENT PRIMARY KEY,
    picture_id INT NOT NULL,
    model_version VARCHAR(50) NOT NULL,
    annotation_data JSON NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (picture_id) REFERENCES picture(picture_id)
);

-- 3. 人工标注表(manual_annotation)
CREATE TABLE manual_annotation (
    manual_annotation_id INT AUTO_INCREMENT PRIMARY KEY,
    picture_id INT NOT NULL,
    annotator_id INT NOT NULL,
    label JSON NOT NULL COMMENT '地质类别标签,如 {"type": "fault", "confidence": 0.95}',
    subimage_name VARCHAR(255) NOT NULL,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    FOREIGN KEY (picture_id) REFERENCES picture(picture_id),
    FOREIGN KEY (annotator_id) REFERENCES user(user_id)
);

-- 4. 完整标注表(complete_annotation)
CREATE TABLE complete_annotation (
    complete_annotation_id INT AUTO_INCREMENT PRIMARY KEY,
    picture_id INT NOT NULL UNIQUE,
    final_data JSON NOT NULL,
    created_by INT NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (picture_id) REFERENCES picture(picture_id),
    FOREIGN KEY (created_by) REFERENCES user(user_id)
);

3.工具生成ER图

我们可以使用到一个工具:SQL转ER图在线工具: https://sql.cengxuyuan.cn/?mode=manual

直接把SQL语句输入进去就可以了:

相关推荐
数据技术说17 分钟前
MySQL 迁移实战——如何实现真正的"零改造"平滑切换
mysql
倔强的石头_15 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB17 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou642 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE3 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
唐青枫4 天前
MySQL JSON 实战详解:从存储、查询、更新到 JSON_TABLE 与索引
sql·mysql
吃糖的小孩4 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
小满8784 天前
5.Mysql事务隔离级别与锁机制
mysql
笃行3505 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库