mysql作业:设计出系统的概念结构。宿舍信息:编号、楼层、床位数、单价等。 ·学生:学号、姓名、性别、年龄、所在院系、年级、电话等。 每个宿舍最多可以住4位同学,每个同学只能在一个宿舍,不同宿舍的费用标准可以不同。不同院系、年级的同学可以住同一间宿舍。 系统要能够对宿舍、学生、住宿信息进行登记、调整,并能随时进行各种查询、统计等处理。包括: ·寝室分配:根据院系、年级分配寝室。 ·学生管理:实现入住学生信息的登记、维护和查询功能。 ·信息查询:按公寓楼号、学生姓名等查询住宿信息。 ·出入登记(可选):对学生进出公寓的情况进行登记、实现基本的出、入监控功能
时间: 2023-12-20 07:06:18 浏览: 80
javaWeb项目:基于servlet+jsp+mysql实现的学生宿舍管理系统
根据题目要求,我们可以设计出以下的系统概念结构:
1. 实体关系图
宿舍(Dormitory) - 1:n - 学生(Student)
2. 数据库表设计
a. 宿舍表(Dormitory)
- 编号(id):主键,自增长
- 楼层(floor):整型
- 床位数(beds):整型
- 单价(price):浮点型
b. 学生表(Student)
- 学号(id):主键,自增长
- 姓名(name):字符串
- 性别(gender):字符串
- 年龄(age):整型
- 所在院系(department):字符串
- 年级(grade):字符串
- 电话(telephone):字符串
- 宿舍编号(dormitory_id):外键,关联宿舍表的编号字段
3. 数据库查询
a. 寝室分配
可以通过以下 SQL 语句进行院系、年级分配寝室:
```
UPDATE Student s
SET s.dormitory_id = (
SELECT d.id
FROM Dormitory d
WHERE d.beds > (
SELECT COUNT(*)
FROM Student s2
WHERE s2.dormitory_id = d.id
)
AND s.department = 'XXX'
AND s.grade = 'XXX'
LIMIT 1
);
```
b. 学生管理
可以通过以下 SQL 语句进行学生信息的登记、维护和查询:
```
-- 插入学生信息
INSERT INTO Student (name, gender, age, department, grade, telephone)
VALUES ('张三', '男', 20, '计算机科学与技术', '2019', '13000000000');
-- 更新学生信息
UPDATE Student
SET telephone = '13111111111'
WHERE id = 1;
-- 查询学生信息
SELECT * FROM Student;
```
c. 信息查询
可以通过以下 SQL 语句按公寓楼号、学生姓名等查询住宿信息:
```
-- 按公寓楼号查询住宿信息
SELECT d.id, d.floor, d.beds, d.price, s.name, s.gender, s.age, s.department, s.grade, s.telephone
FROM Dormitory d
LEFT JOIN Student s ON d.id = s.dormitory_id
WHERE d.floor = 1;
-- 按学生姓名查询住宿信息
SELECT d.id, d.floor, d.beds, d.price, s.name, s.gender, s.age, s.department, s.grade, s.telephone
FROM Dormitory d
LEFT JOIN Student s ON d.id = s.dormitory_id
WHERE s.name = '张三';
```
d. 出入登记
可以通过在学生表中增加出入时间的字段,并在系统中添加相应的页面或接口来实现基本的出、入监控功能。
阅读全文