先上两个链接:
1..基础的表设计关系概念: https://blog.csdn.net/belen_xue/article/details/52763629
2..各种关系讲解比较透彻, 有代码和表格, 很容易理解和搬用: https://blog.csdn.net/lengjinghk/article/details/52140276
下面是设计自己的表格: (本人开发记录,参看需谨慎, 可能存在错误)
一..需求
一共有五个实体: 平台管理员信息表 工人信息表 设备信息表 数据流实体 数据点实体
PS:一个实体对应一张表.
二..功能分析
他们之间是多一多关系:
1..平台管理员:
统计数据
转发数据
展示处理后数据
2..设备
上传数据
3..工人
上传数据
接收数据
三..流程图
四..数据库表格
先上我的文件: https://download.csdn.net/download/qq_37832932/10343937SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `tb_datapoints` -- ---------------------------- DROP TABLE IF EXISTS `tb_datapoints`; CREATE TABLE `tb_datapoints` ( `datapointsID` varchar(20) NOT NULL, `time` datetime DEFAULT NULL, `value` varchar(10) DEFAULT NULL, `BID` varchar(20) DEFAULT NULL, PRIMARY KEY (`datapointsID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tb_datapoints -- ---------------------------- INSERT INTO `tb_datapoints` VALUES ('DP0001', '2018-04-04 14:44:58', '13', 'DS001'); INSERT INTO `tb_datapoints` VALUES ('DP0002', '2018-04-05 14:45:04', '124', 'DS002'); INSERT INTO `tb_datapoints` VALUES ('DP0003', '2018-04-06 14:45:08', '12', 'DS001'); INSERT INTO `tb_datapoints` VALUES ('DP0004', '2018-04-07 14:45:12', '233', 'DS001'); -- ---------------------------- -- Table structure for `tb_datastreams` -- ---------------------------- DROP TABLE IF EXISTS `tb_datastreams`; CREATE TABLE `tb_datastreams` ( `datastreamsID` varchar(20) NOT NULL, `content` varchar(10) DEFAULT NULL, `AID` varchar(20) DEFAULT NULL, PRIMARY KEY (`datastreamsID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tb_datastreams -- ---------------------------- INSERT INTO `tb_datastreams` VALUES ('DS001', 'usage', 'D001'); INSERT INTO `tb_datastreams` VALUES ('DS002', 'total', 'D001'); INSERT INTO `tb_datastreams` VALUES ('DS003', 'usage', 'D002'); INSERT INTO `tb_datastreams` VALUES ('DS004', 'total', 'D002'); INSERT INTO `tb_datastreams` VALUES ('DS005', 'usage', 'D003'); INSERT INTO `tb_datastreams` VALUES ('DS006', 'total', 'D003'); INSERT INTO `tb_datastreams` VALUES ('DS007', 'usage', 'D004'); INSERT INTO `tb_datastreams` VALUES ('DS008', 'total', 'D004'); INSERT INTO `tb_datastreams` VALUES ('DS009', 'usage', 'D005'); INSERT INTO `tb_datastreams` VALUES ('DS010', 'total', 'D005'); INSERT INTO `tb_datastreams` VALUES ('DS011', 'usage', 'D006'); INSERT INTO `tb_datastreams` VALUES ('DS012', 'total', 'D006'); INSERT INTO `tb_datastreams` VALUES ('DS013', 'usage', 'D007'); INSERT INTO `tb_datastreams` VALUES ('DS014', 'total', 'D007'); INSERT INTO `tb_datastreams` VALUES ('DS015', 'usage', 'D008'); INSERT INTO `tb_datastreams` VALUES ('DS016', 'total', 'D008'); INSERT INTO `tb_datastreams` VALUES ('DS017', 'usage', 'D009'); INSERT INTO `tb_datastreams` VALUES ('DS018', 'total', 'D009'); INSERT INTO `tb_datastreams` VALUES ('DS019', 'usage', 'D010'); INSERT INTO `tb_datastreams` VALUES ('DS020', 'total', 'D010'); INSERT INTO `tb_datastreams` VALUES ('DS021', 'location', 'W001'); INSERT INTO `tb_datastreams` VALUES ('DS022', 'location', 'W002'); -- ---------------------------- -- Table structure for `tb_device` -- ---------------------------- DROP TABLE IF EXISTS `tb_device`; CREATE TABLE `tb_device` ( `deviceID` varchar(20) NOT NULL, `location` varchar(100) DEFAULT NULL, PRIMARY KEY (`deviceID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tb_device -- ---------------------------- INSERT INTO `tb_device` VALUES ('D001', '北苑食堂左'); INSERT INTO `tb_device` VALUES ('D002', '北苑食堂右'); INSERT INTO `tb_device` VALUES ('D003', '59号楼东'); INSERT INTO `tb_device` VALUES ('D004', '59号楼西'); INSERT INTO `tb_device` VALUES ('D005', '59号楼南'); INSERT INTO `tb_device` VALUES ('D006', '59号楼北'); INSERT INTO `tb_device` VALUES ('D007', '64号楼东'); INSERT INTO `tb_device` VALUES ('D008', '64号楼西'); INSERT INTO `tb_device` VALUES ('D009', '64号楼南'); INSERT INTO `tb_device` VALUES ('D010', '64号楼北'); -- ---------------------------- -- Table structure for `tb_manager` -- ---------------------------- DROP TABLE IF EXISTS `tb_manager`; CREATE TABLE `tb_manager` ( `managerID` varchar(20) NOT NULL, `password` varchar(20) DEFAULT NULL, PRIMARY KEY (`managerID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tb_manager -- ---------------------------- INSERT INTO `tb_manager` VALUES ('M001', 'M001'); INSERT INTO `tb_manager` VALUES ('M002', 'M002'); -- ---------------------------- -- Table structure for `tb_worker` -- ---------------------------- DROP TABLE IF EXISTS `tb_worker`; CREATE TABLE `tb_worker` ( `workerID` varchar(20) NOT NULL, `name` varchar(20) DEFAULT NULL, PRIMARY KEY (`workerID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of tb_worker -- ---------------------------- INSERT INTO `tb_worker` VALUES ('D001', 'zhao'); INSERT INTO `tb_worker` VALUES ('D002', 'dai');
1.管理员表格
记录管理员的账号和密码, 品台的唯一控制者
2.设备表格
设备为固定设备, 所以直接写入初始位置
3.工人表格
和设备一样, 直接写入固定信息
4.数据流表格
设备和工人与数据流都是一对多的关系,所以在数据流添加了AID这个外键
其中AID对应着设备的deviceID和工人的workerID. 是device和worker的外键
5.数据点表格
和数据流一样, 数据点的表存在一个外键BID
而数据点和上面的表格不一样, 因为他是所有信息直接更新写入的表格, 上面的四张表都是固定的信息
数据的实时插入, 查询, 统计所有操作的数据都在这张表里面
五..E-R图.
没有画E-R图的软件,大致表示一下
/******************************************************************************************************************/
下一步继续开发Web服务器