先上两个链接:
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服务器