学校宿舍管理系统
基本要求
设计一个学校宿舍管理系统. 学校宿舍管理系统,要求:
- 包含宿舍信息
- 学生信息
- 每日的宿舍查房记录。
信息分析
宿舍信息包含了:
- 宿舍号(关键码)
- 宿舍成员
- 宿舍地址
- 宿舍人数(或者当前宿舍现有人数等基本信息)
此处不一一列举
2.学生信息
学生信息包含:
- 学生号(id, 关键码)
- 身份证等(候选码)
- 名字
- 年龄
- 班级
- 联系方式
- 宿舍号
3.每日宿舍查房记录
每日查房记录, 有多个宿舍, 都需要查房, 那么就把每个人对一个宿舍查一次房作为一个记录, 这个记录中包含属性:
- 序号(主码 / 候选码)
- 宿舍号
- 时间
- 评级
- 查房人名字
这个序号并不重要在这张表里面,重要的是里面的时间还有宿舍号.
多张表的设计
宿舍信息表中,每个宿舍为一个记录.宿舍信息肯定包含了宿舍中的成员, 也就是在这个宿舍里面的成员信息, 所以, 这个学生和宿舍就构成了一对多的关系.
宿舍查房记录的最主要是宿舍的房间号,一个序号对应一个宿舍号, 也就是说,宿舍信息和每日查房记录构成一对一的关系.
实现
create table dormitory( dorID int primary key, nums int not null, address varchar(30) not null ); create table student( studentID int primary key, IDcard int primary key, name varchar(20) not null, age int not null, class varchar(20) not null, dorID int, foreign key(dorID) references dormitory(dorID) ); create table attendanceCheck( attendanceList int primary key auto_increment, dorID int, checkTime datetime, ap varchar(20) not null, nameCheck varchar(20) not null, foreign key(dorID) references dormitory(dorID) );
车辆违章系统
基本要求
车辆违章系统:包含用户表,车辆表,违章信息表。
违章信息表中包含 : 用户, 车辆的违章信息
信息分析
用户表包含用户的基本信息, 包括但不限于: 用户名,,年龄, 电话, 车牌号, 电话, 身份证等
create table userlist ( name varchar(20) not null, age int not null, tele int not null, Lpnum varchar(20) unique not null, IDcard int primary key )
包含车辆的基本信息, 包括但不限于 : 车牌号, 车型号, 拥有者身份证等
create table carlist( carType varchar(30) not null, ownnerID int unique not null, carID int primary key )
包含车辆的基本信息, 违章的条目和扣分详细等等:
create table breaklist( carID not null, item varchar(100) not null, decrease int, userID int not null )
表的设计
这里有三张表, 一张是用户表, 一张是车辆表, 一张是车辆违章信息表格, 其中用户表和车辆表一一对应, 用户表和车辆表里面的记录都是唯一的, 也就是单一个用户不会在用户表中存在多条记录, 车辆同样如此. 然后车辆违章信息表和用户表和车辆表是一对多的关系.
在设计车辆违章信息的时候, 将车辆id和用户id设置为两个约束这个表的外键, 如下:
create table breaklist( carID int not null, item varchar(100) not null, decrease int, userID int not null, foreign key(carID) references userlist(IDcard), foreign key(userID) references carlist(carID) )