MySQL设计工厂管理数据库(Ⅰ)—表结构设计

  • 引言
  • 设计思路
    • 工厂管理E-R图
    • 设计工厂管理逻辑图
  • 实现过程
    • 项目(project)表实现
    • 职工(staff)表设计
    • 零件(components)表设计
    • 供应商(supplier)表设计
    • 仓库(storehouse)表设计
  • 实现效果
  • 小结
  • 参考

引言

学习MyQL第5天,主要在学习其的基础的操作知识,想通过实例练习巩固所学,遂成此文。

设计思路

工厂管理E-R图


由图易知:该数据库主要包括五个主体:
1、项目(project)
2、供应商(supplier)
3、仓库(storehouse)
4、零件(components)
5、职工(staff)

设计工厂管理逻辑图

根据E-R图要求,笔者尝试设计的逻辑图如下图所示:

实现过程

实现工具为MySQL,编辑工具为Navicat for MySQL

项目(project)表实现

CREATE TABLE `project`  (`Supplier_supply` int(10) NOT NULL COMMENT '供应量',`project_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '项目号',`budget` int(10) NOT NULL COMMENT '预算',`start_date` datetime(0) NOT NULL COMMENT '开工日期',PRIMARY KEY (`project_ID`) USING BTREE,INDEX `supply`(`Supplier_supply`) USING BTREE,CONSTRAINT `Supplier_supply` FOREIGN KEY (`Supplier_supply`) REFERENCES `supplier` (`supply`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

职工(staff)表设计

CREATE TABLE `staff`  (`staff_ID` char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '职工号',`staff_name` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '职工姓名',`age` int(3) NOT NULL COMMENT '年龄',`job_title` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '职称',`Whether_to_lead` enum('yes','no') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '是否领导',`storehouse_ID` char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所在仓库',PRIMARY KEY (`staff_ID`) USING BTREE,INDEX `storehouse_ID`(`storehouse_ID`) USING BTREE,CONSTRAINT `storehouse_ID` FOREIGN KEY (`storehouse_ID`) REFERENCES `storehouse` (`storehouse_ID`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

零件(components)表设计

CREATE TABLE `components`  (`component_ID` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '零件号',`comonent_name` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '零件名称',`specification` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '规格',`unit_price` decimal(10, 2) NOT NULL COMMENT '单价',`inventory` int(25) NOT NULL COMMENT '库存量',`description` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '描述',PRIMARY KEY (`component_ID`, `inventory`) USING BTREE,INDEX `inventory`(`inventory`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

供应商(supplier)表设计

CREATE TABLE `supplier`  (`supplier_ID` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '供应商号',`name` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '姓名',`address` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '地址',`telephone_number` char(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '电话号码',`account_number` char(22) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '账号',`supply` int(10) NOT NULL COMMENT '供应量',PRIMARY KEY (`supplier_ID`, `supply`) USING BTREE,INDEX `supply`(`supply`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

仓库(storehouse)表设计

CREATE TABLE `storehouse`  (`storehouse_ID` char(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仓库号',`area` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '面积',`s_telephone_number` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '电话号码',`component_stock` int(10) NOT NULL COMMENT '零件库存',PRIMARY KEY (`storehouse_ID`) USING BTREE,INDEX `component_stock`(`component_stock`) USING BTREE,CONSTRAINT `component_stock` FOREIGN KEY (`component_stock`) REFERENCES `components` (`inventory`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

实现效果

小结

笔者在逻辑结构设计上仍有欠缺,望读者不吝赐教,给笔者一些改进建议。另外,在表中各变量的数据类型的赋予上,仍有不足之处。

参考

编程规则主要来自:
《MySQL必知必会》章节1-12
慕课《MySQL数据库设计与应用》

MySQL设计工厂管理数据库(Ⅰ)—表结构设计相关推荐

  1. ezdml 支付mysql 吗_EZDML数据库表结构设计器_设计sql、oracle、mysql数据库表结构 V2.39 免费版...

    很多程序员或者网站站长在设计网站数据库的时候都要进行表结构设计,如果您不想操作原始的数据库工具之想简单设计一下数据库表结构,那么你不妨试试这款EZDML数据库表结构设计器,可以快速设计sql.orac ...

  2. 导出 MySQL 数据库表结构设计文档

    第一种 :利用sql语句查询 需要说明的是该方法应该适用很多工具,博主用的是navicat SELECT TABLE_NAME 表名,COLUMN_NAME 列名, COLUMN_TYPE 数据类型, ...

  3. ezdml 支付mysql 吗_数据库表设计工具EZDML使用教程

    表结构设计器(EZDML) 这是一个数据库建表的小软件,可快速的进行数据库表结构设计,建立数据模型.类似大家常用的数据库建模工具如PowerDesigner.ERWIN.ER-Studio和Ratio ...

  4. mysql 数据库表结构设计与规范

    mysql 数据库表结构设计与规范 DDL(data difinition language)就是数据定义语言. 1.sql语句的界定符 [code]– 默认情况下" ; " 代表 ...

  5. 数据库表结构设计原则

    转载自:http://hi.baidu.com/yzx110/blog/item/0159fadc7b7839a4cd116686.html 数据库表结构设计浅谈 这篇文章如题所述,只打算谈一下数据库 ...

  6. 转载:数据库表结构设计方法及原则

    在目前的企业信息系统中,数据库还是最佳的数据存储方式,虽然已经有很多的书籍在指导我们进行数据库设计,但应该那种方式是设计数据库的表结构的最好方 法.设计时应遵从什么样的原则.四个范式如何能够用一种方式 ...

  7. 数据库表结构设计方法

    数据库表结构设计方法 当我们设计一个数据库存储模式时,要仔细分析数据模式,不要一股脑的把所有的数据都放在一起.那样的话对系统的可用性,高效能,扩展性都会有严重的影响.当然你设计的系统非常小,完全可以用 ...

  8. Mysql——》查看数据库表结构

    版权声明:本文为博主原创文章,无需授权即可转载,甚至无需保留以上版权声明,转载时请务必注明作者. https://blog.csdn.net/weixin_43453386/article/detai ...

  9. 把Excel表格通过MySql Workbench导入数据库表中的使用总结

    把Excel表格通过MySql Workbench导入数据库表中的使用总结 今天接到一个任务,把excel表中的数据导入到mysql数据库中,通过半个多小时的鼓捣,基本上摸清了里面的门道. 首先,准备 ...

最新文章

  1. 快乐数(最终要变成1)
  2. RecycleView中使用Glide加载图片防止加载错乱
  3. 操作MySQL数据库
  4. Node.js 基金会和 JS 基金会准备合并,你怎么看?
  5. 软中断amp;taskletamp;工作队列
  6. mysql读写分离的含义_mysql的读写分离问题剖析
  7. struts2+json(3)
  8. POJ - 2236 Wireless Network
  9. centos6.5 下搭建lamp环境
  10. matlab求解全微分函数,Matlab求解一元函数,再求全微分的错误,表达式复杂不会........
  11. 智道分析吊瓜子的营养价值
  12. 「成都站」SOFAStack Erda 邀你聊一聊云原生的基础设施建设
  13. 5.15 按照排序图标对目标拓展客户数进行排序 [原创Excel教程]
  14. 怎样把m4a转换成mp3格式?
  15. 编写一个学生和教师数据的输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门
  16. 51cto的请看过来
  17. VisualDSP++安装错误解决办法
  18. 2014年中国十大物联网公司排名
  19. 谷歌老闪退啊 和 pycharm版本问题 and 微信闪退
  20. 数据库管理员岗位职责

热门文章

  1. 微信小程序获取手机号隐私权限问题处理方案
  2. 设计模式 - 创建型设计模式小结
  3. ZJU PAT的一些代码
  4. pythonSSL证书错误
  5. 八大排序 - (详解)
  6. Makefile文件名称
  7. android 使用volley下载文件和加载gif图片
  8. mysql 初始化数据库报错
  9. 《汇编语言》第十章 call 和 ret 指令
  10. matlab怎么仿真低频振荡,电力系统低频振荡MATLAB仿真毕业论文.doc