1. 程式人生 > >java web專案資料庫設計

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/10343937
SET 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伺服器