CONSTRAINT `points_recharge_ibfk_1` FOREIGN KEY (`point_id`) REFERENCES `points_record` (`point_id`) ON DELETE RESTRICT ON UPDATE RESTRICT
时间: 2023-08-23 08:17:15 浏览: 131
这是一个MySQL数据库中的外键约束。它指定了一个名为 `points_recharge_ibfk_1` 的约束,它与 `points_record` 表中的 `point_id` 列相关联。这个约束的作用是在删除或更新 `points_record` 表中的记录时,对应的 `points_recharge` 表中的记录会受到限制,即不能进行删除或更新操作。
相关问题
CREATE TABLE `tb_administrative_address` ( `address_id` bigint NOT NULL AUTO_INCREMENT COMMENT '地址ID', `user_id` bigint NOT NULL COMMENT '用户ID', `status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0,审核中,1:启用 2:禁用)', `country` varchar(50) NOT NULL COMMENT '国家', `province` varchar(50) NOT NULL COMMENT '省份', `city` varchar(50) NOT NULL COMMENT '城市', `district` varchar(50) NOT NULL COMMENT '区县', `town` varchar(50) NOT NULL COMMENT '乡镇', `village` varchar(50) NOT NULL COMMENT '村', `street` varchar(50) NOT NULL COMMENT '街道', `building` varchar(50) NOT NULL COMMENT '楼号', `unit` varchar(50) NOT NULL COMMENT '单元号', `room` varchar(50) NOT NULL COMMENT '房间号', `detail_address` varchar(300) NOT NULL COMMENT '详细地址', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`address_id`), KEY `idx_address_detail` (`province`,`city`,`district`,`town`,`village`,`street`,`building`,`unit`,`room`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci CREATE TABLE `tb_planting_record` ( `record_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID', `product_id` varchar(36) NOT NULL COMMENT '产品ID', `record_type` varchar(20) DEFAULT NULL COMMENT '记录类型', `details` text COMMENT '详细内容', `pesticide_name` varchar(100) DEFAULT NULL COMMENT '农药名称(如为农药记录)', `pesticide_amount` varchar(50) DEFAULT NULL COMMENT '农药用量', `fertilizer_name` varchar(100) DEFAULT NULL COMMENT '肥料名称', `fertilizer_amount` varchar(50) DEFAULT NULL COMMENT '肥料用量', `operator_id` bigint NOT NULL COMMENT '操作人ID(农户)', `operator_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`record_id`), KEY `operator_id` (`operator_id`), KEY `idx_product` (`product_id`), CONSTRAINT `tb_planting_record_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`), CONSTRAINT `tb_planting_record_ibfk_2` FOREIGN KEY (`operator_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='农产品种植记录表' CREATE TABLE `tb_product` ( `product_id` varchar(36) NOT NULL COMMENT '产品ID(UUID)', `product_name` varchar(100) NOT NULL COMMENT '产品名称', `product_type` varchar(50) NOT NULL COMMENT '产品类型(蔬菜/水果/谷物等)', `farmer_id` bigint NOT NULL COMMENT '生产农户ID', `batch_number` varchar(50) NOT NULL COMMENT '批次号', `planting_date` date DEFAULT NULL COMMENT '种植日期', `harvest_date` date DEFAULT NULL COMMENT '采收日期', `origin_place` varchar(100) DEFAULT NULL COMMENT '原产地', `qr_code` varchar(100) DEFAULT NULL COMMENT '溯源二维码URL', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `status` tinyint DEFAULT '1' COMMENT '状态(1正常/2已召回)', PRIMARY KEY (`product_id`), KEY `idx_batch` (`batch_number`), KEY `idx_farmer` (`farmer_id`), CONSTRAINT `tb_product_ibfk_1` FOREIGN KEY (`farmer_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='农产品基础信息表' CREATE TABLE `tb_regulation_record` ( `record_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID', `product_id` varchar(36) DEFAULT NULL COMMENT '产品ID(如为批次监管可为空)', `regulator_id` bigint NOT NULL COMMENT '监管机构ID', `record_time` datetime NOT NULL COMMENT '记录时间', `action_type` varchar(50) NOT NULL COMMENT '监管类型', `description` text NOT NULL COMMENT '监管内容', `affected_batch` varchar(100) DEFAULT NULL COMMENT '受影响批次', `status` varchar(20) DEFAULT 'PENDING' COMMENT '处理状态', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`record_id`), KEY `regulator_id` (`regulator_id`), KEY `idx_product` (`product_id`), KEY `idx_time` (`record_time`), CONSTRAINT `tb_regulation_record_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`), CONSTRAINT `tb_regulation_record_ibfk_2` FOREIGN KEY (`regulator_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='监管记录表' CREATE TABLE `tb_retail_record` ( `record_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID', `product_id` varchar(36) NOT NULL COMMENT '产品ID', `retailer_id` bigint NOT NULL COMMENT '零售商ID', `sale_time` datetime NOT NULL COMMENT '销售时间', `sale_location` varchar(100) NOT NULL COMMENT '销售地点', `price` decimal(10,2) DEFAULT NULL COMMENT '销售价格', `quantity` decimal(10,2) DEFAULT NULL COMMENT '销售数量', `unit` varchar(20) DEFAULT NULL COMMENT '单位(kg/个等)', `quality_report` varchar(200) DEFAULT NULL COMMENT '质检报告URL', `consumer_id` bigint DEFAULT NULL COMMENT '消费者ID(如登记)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `is_delete` tinyint DEFAULT '0' COMMENT '是否删除(0否/1是)', `buy_status` tinyint DEFAULT '1' COMMENT '状态(1正常,2召回)', PRIMARY KEY (`record_id`), KEY `retailer_id` (`retailer_id`), KEY `consumer_id` (`consumer_id`), KEY `idx_product` (`product_id`), KEY `idx_time` (`sale_time`), CONSTRAINT `tb_retail_record_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`), CONSTRAINT `tb_retail_record_ibfk_2` FOREIGN KEY (`retailer_id`) REFERENCES `sys_user` (`user_id`), CONSTRAINT `tb_retail_record_ibfk_3` FOREIGN KEY (`consumer_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='零售销售记录表' CREATE TABLE `tb_sys_alert` ( `alert_id` bigint NOT NULL AUTO_INCREMENT COMMENT '报警ID', `product_id` varchar(36) NOT NULL COMMENT '产品ID', `alert_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '报警时间', `alert_level` tinyint NOT NULL COMMENT '报警等级', `alert_content` varchar(200) NOT NULL COMMENT '报警内容', `alert_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '报警状态', `alert_user_id` bigint DEFAULT NULL COMMENT '报警用户ID', PRIMARY KEY (`alert_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci CREATE TABLE `tb_trace_query` ( `query_id` bigint NOT NULL AUTO_INCREMENT COMMENT '查询ID', `product_id` varchar(36) NOT NULL COMMENT '产品ID', `query_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '查询时间', `query_user_id` bigint DEFAULT NULL COMMENT '查询用户ID', `query_ip` varchar(50) DEFAULT NULL COMMENT '查询IP地址', `query_device` varchar(200) DEFAULT NULL COMMENT '查询设备信息', PRIMARY KEY (`query_id`), KEY `query_user_id` (`query_user_id`), KEY `idx_product` (`product_id`), KEY `idx_time` (`query_time`), CONSTRAINT `tb_trace_query_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`), CONSTRAINT `tb_trace_query_ibfk_2` FOREIGN KEY (`query_user_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='溯源查询记录表' CREATE TABLE `tb_transport_record` ( `record_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID', `product_id` varchar(36) NOT NULL COMMENT '产品ID', `transport_company_id` bigint NOT NULL COMMENT '物流公司ID', `seller_id` bigint DEFAULT NULL COMMENT '卖家ID', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `start_location` varchar(100) DEFAULT NULL COMMENT '起始地点', `end_location` varchar(100) DEFAULT NULL COMMENT '目的地', `vehicle_number` varchar(50) DEFAULT NULL COMMENT '运输车辆编号', `driver_name` varchar(50) DEFAULT NULL COMMENT '司机姓名', `driver_phone` varchar(20) DEFAULT NULL COMMENT '司机电话', `start_latitude` decimal(9,6) DEFAULT NULL COMMENT '起始纬度', `start_longitude` decimal(9,6) DEFAULT NULL COMMENT '起始经度', `end_latitude` decimal(9,6) DEFAULT NULL COMMENT '结束纬度', `end_longitude` decimal(9,6) DEFAULT NULL COMMENT '结束经度', `temperature_record` varchar(200) DEFAULT NULL COMMENT '温度记录(JSON格式)', `humidity_record` varchar(200) DEFAULT NULL COMMENT '湿度记录(JSON格式)', `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', PRIMARY KEY (`record_id`), KEY `transport_company_id` (`transport_company_id`), KEY `seller_id` (`seller_id`), KEY `idx_product` (`product_id`), KEY `idx_time` (`start_time`), CONSTRAINT `tb_transport_record_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `tb_product` (`product_id`), CONSTRAINT `tb_transport_record_ibfk_2` FOREIGN KEY (`transport_company_id`) REFERENCES `sys_user` (`user_id`), CONSTRAINT `tb_transport_record_ibfk_3` FOREIGN KEY (`seller_id`) REFERENCES `sys_user` (`user_id`) ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='物流运输记录表' 请根据上面图的关系给出er图,请用mermaid生成(不用详细写,每个表里面有什么字段)
### 如何使用Mermaid语法生成ER图
Mermaid 提供了一种简洁的方式来生成实体关系图 (Entity Relationship Diagram, ERD),这种图表能够清晰地展示数据库中的各个表以及它们之间的关系。以下是有关如何利用 Mermaid 语法构建 ER 图的具体说明。
#### 基础语法
在 Mermaid 中,ER 图的基本结构由 `erDiagram` 定义块包裹。每个实体通过关键字 `entity` 表示,并且可以指定该实体的属性和与其他实体的关系[^1]。
例如:
```mermaid
erDiagram
CUSTOMER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
CUSTOMER }|--o{ INVOICE : receives
```
在此例子中:
- `CUSTOMER`, `ORDER`, 和其他项代表不同的实体。
- 符号如 `||--o{` 或者 `}|--|{` 描述了这些实体间的关系类型,具体含义如下:
- `||--o{`: 强制性一对一或多对一关系。
- `}|--|{`: 可选的一对多关系。
- 更详细的解释可参见官方文档或相关资料[^1]。
#### 属性定义
除了定义实体间的连接外,在 ER 图里还需要标明各实体所含有的字段或者属性。这可以通过在对应实体名之后列出其成员变量实现,比如:
```mermaid
erDiagram
DEPARTMENT {
int id
String name
}
EMPLOYEE {
int emp_id PK
String first_name
String last_name
int department_id FK
}
DEPARTMENT ||--o{ EMPLOYEE : has
```
这里增加了两个新概念——主键 (`PK`) 和外键 (`FK`) 的标注方式,帮助更精确表达数据模型的设计意图[^4]。
#### 实际应用案例
假设我们要设计一个图书馆管理系统,则可以用下面这段代码描绘其中几个核心组件之间可能存在的联系:
```mermaid
erDiagram
LIBRARY_BRANCH {
int branchId PK
String branchName
}
BOOK_COPIES {
int bookId PK FK
int branchId PK FK
int noOfCopies
}
BORROWER {
int cardNo PK
String ssn
String bname
Date address
Date phone
}
BOOK_LOANS {
int loanId PK
int bookId FK
int branchId FK
int cardNo FK
Date dateOut
Date dueDate
Date dateIn
}
BOOK_AUTHORS {
int authorId PK
String authorName
}
BOOKS {
int bookId PK
String title
String isbn
String publisherId FK
}
PUBLISHERS {
int publisherId PK
String name
String address
String phone
}
LIBRARY_BRANCH ||--o{ BOOK_COPIES : maintains
BOOK_COPIES ||--|{ BOOK_LOANS : lends_out_via
BORROWER ||--o{ BOOK_LOANS : borrows
BOOKS ||--o{ BOOK_COPIES : is_stocked_in
BOOKS ||..|{ BOOK_AUTHORS : written_by
BOOKS |p--|{ PUBLISHERS : published_by
```
此片段不仅涵盖了书籍副本、借阅记录等基本要素,还体现了出版商同书目之间的松散耦合关联形式[^3]。
#### 工具支持与部署建议
为了方便开发者快速上手并验证自己的设计成果,推荐采用以下几种途径之一来运行上述 mermaid 脚本:
- **在线编辑器**: 访问任意兼容 mermaid.js 技术栈的服务平台即可实时查看效果;
- **本地环境配置**: 如果偏好离线操作模式的话,那么安装 nodejs 平台后再依据指引克隆仓库 https://gitcode.com/gh_mirrors/me/mermaid-cli 即完成准备工作[^2];随后执行必要的编译指令生成静态图像文件导出分享给团队成员审阅讨论。
---
怎么解决Cannot add or update a child row: a foreign key constraint fails (`shopping`.`sold_out_list`, CONSTRAINT `sold_out_list_ibfk_1` FOREIGN KEY (`SOLD_ID`) REFERENCES `salesman` (`SID`))
这个错误通常是由于外键约束导致的。外键约束是用于保持表之间的数据完整性的一种方法。在这种情况下,可能是因为您试图将一个无效的值插入到 `sold_out_list` 表中的 `SOLD_ID` 字段中,因为这个值在 `salesman` 表中不存在。为了解决这个问题,您需要检查 `SOLD_ID` 字段在 `sold_out_list` 表中是否为外键,并且确保该值在 `salesman` 表中存在。如果该值不存在,您需要插入一个有效的 `SID` 值。如果您不希望使用外键约束,您可以考虑禁用它们或更改外键约束以匹配您的数据。
阅读全文
相关推荐
















