学校宿舍管理系统
基本要求
设计一个学校宿舍管理系统. 学校宿舍管理系统,要求:
包含宿舍信息
学生信息
每日的宿舍查房记录。
信息分析
宿舍信息
宿舍信息包含了:
宿舍号(关键码)
宿舍成员
宿舍地址
宿舍人数(或者当前宿舍现有人数等基本信息)
此处不一一列举
2.学生信息
学生信息包含:
学生号(id, 关键码)
身份证等(候选码)
名字
年龄
班级
联系方式
宿舍号
3.每日宿舍查房记录
每日查房记录, 有多个宿舍, 都需要查房, 那么就把每个人对一个宿舍查一次房作为一个记录, 这个记录中包含属性:
序号(主码 / 候选码)
宿舍号
时间
评级
查房人名字
这个序号并不重要在这张表里面,重要的是里面的时间还有宿舍号.
多张表的设计
宿舍信息表中,每个宿舍为一个记录.宿舍信息肯定包含了宿舍中的成员, 也就是在这个宿舍里面的成员信息, 所以, 这个学生和宿舍就构成了一对多的关系.
![](https://i-blog.csdnimg.cn/blog_migrate/4e6935d1c89bf0873a7c5f9441296a85.png)
宿舍查房记录的最主要是宿舍的房间号,一个序号对应一个宿舍号, 也就是说,宿舍信息和每日查房记录构成一对一的关系.
实现
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)
)