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服务器


  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java中的JDBC(Java Database Connectivity) API来实现与数据库的交互。以下是一个Java web项目中连接MySQL数据库的示例代码: 1. 导入JDBC相关的库文件 在项目中导入MySQL JDBC驱动库文件,例如: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> ``` 2. 编写数据库连接类 可以创建一个单例的数据库连接类,通过该类提供的静态方法来获取数据库连接对象。示例代码如下: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { private static final String URL = "jdbc:mysql://localhost:3306/test"; private static final String USER = "root"; private static final String PASSWORD = "123456"; private static Connection conn = null; static { try { // 加载MySQL JDBC驱动程序 Class.forName("com.mysql.cj.jdbc.Driver"); // 获取数据库连接对象 conn = DriverManager.getConnection(URL, USER, PASSWORD); } catch (ClassNotFoundException | SQLException e) { e.printStackTrace(); } } // 获取数据库连接对象 public static Connection getConnection() { return conn; } } ``` 3. 在Java web项目中使用数据库连接 通过DBUtil类提供的静态方法获取数据库连接对象,然后就可以使用该连接对象进行数据库操作,例如: ```java import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class UserDao { // 查询用户信息 public User getUser(int userId) { User user = null; String sql = "SELECT * FROM user WHERE id = ?"; try (Connection conn = DBUtil.getConnection(); PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setInt(1, userId); try (ResultSet rs = pstmt.executeQuery()) { if (rs.next()) { user = new User(); user.setId(rs.getInt("id")); user.setName(rs.getString("name")); user.setAge(rs.getInt("age")); } } } catch (SQLException e) { e.printStackTrace(); } return user; } } ``` 以上是一个简单的Java web项目连接MySQL数据库的示例,具体的实现方式可以根据具体的需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值