本文介绍一种物料处理通用流程数据库设计
1、数据库设计
navicat 模型原文件 : download
2、数据库设计说明
设计说明:
- 物料表中uuid唯一,同一个物料只允许存在一次
- 一个物料可能被多个流程处理
查询说明:
查询一个物料被哪些流程处理过
select * from common_matrial a
left join common_mps b on a.id = b.matrial_id
left join common_process c on b.process_id = c.id
where a.uuid = "xxxx";
附
数据库db-sql
CREATE TABLE `common_matrial` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`uuid` varchar(255) NULL COMMENT '系统唯一ID',
`source_id` varchar(255) NULL COMMENT '三方ID',
`status` int NULL COMMENT '物料状态 1-有效 2-无效',
`detail` text NULL COMMENT '物料详情 可存放json字段',
`create_time` int NULL COMMENT '创建时间',
`update_time` int NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) COMMENT = '物料表';
CREATE TABLE `common_mps` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '自增ID',
`matrial_id` int NOT NULL COMMENT '物料ID',
`process_id` int NULL COMMENT '流程ID',
`create_time` int NULL COMMENT '创建时间',
`update_time` int NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) COMMENT = '物料-流程-关联表';
CREATE TABLE `common_process` (
`id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键',
`process_code` int NULL COMMENT '流程code',
`process_name` varchar(255) NULL COMMENT '流程名称',
`status` int NULL COMMENT '状态 1-处理中 2-处理成功 3-处理失败',
`create_time` int NULL COMMENT '创建时间',
`update_time` int NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) COMMENT = '流程处理表';
ALTER TABLE `common_mps` ADD CONSTRAINT `fk_common_mps_common_mps_1` FOREIGN KEY (`matrial_id`) REFERENCES `common_matrial` (`id`);
ALTER TABLE `common_mps` ADD CONSTRAINT `fk_common_mps_common_mps_2` FOREIGN KEY (`process_id`) REFERENCES `common_process` (`id`);