java web專案資料庫設計
先上兩個連結:
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伺服器