毕业设计管理系统

步骤:
新建查询

粘贴代码、保存

执行



建库建表代码
SQL server版本
索引和性能优化
|
用户子模式
学生视图
|
教师视图
|
管理员视图
|
最终代码
|
功能测试代码
|

ER图









关系模式:
Students (学生表)
- StudentID (主键): NVARCHAR(20)
- Name: NVARCHAR(50)
- Gender: CHAR(1)
- Major: NVARCHAR(50)
- Class: NVARCHAR(50)
- Phone: NVARCHAR(20)
Instructors (指导教师表)
- InstructorID (主键): NVARCHAR(20)
- Name: NVARCHAR(50)
- Department: NVARCHAR(50)
- ResearchDirection: NVARCHAR(100)
- Phone: NVARCHAR(20)
Administrators (管理员信息表)
- AdminID (主键): NVARCHAR(20)
- Name: NVARCHAR(50)
- Username: NVARCHAR(50) (唯一)
- Password: NVARCHAR(50)
- PermissionLevel: INT
ThesisTopics (毕业设计题目信息表)
- TopicID (主键): NVARCHAR(20)
- Title: NVARCHAR(100)
- Description: NVARCHAR(MAX)
- MaxStudents: INT
- RegistrationDeadline: DATE
- Status: NVARCHAR(20)
- InstructorID (外键): NVARCHAR(20)
StudentThesis (学生毕业设计信息表)
- StudentID (主键,外键): NVARCHAR(20)
- TopicID (主键,外键): NVARCHAR(20)
- StartDate: DATE
- EndDate: DATE
- CurrentProgress: NVARCHAR(100)
ProgressLogs (进度信息表)
- LogID (主键): INT
- StudentID (外键): NVARCHAR(20)
- TopicID (外键): NVARCHAR(20)
- ProgressDescription: NVARCHAR(MAX)
- RecordDate: DATE
ThesisReviews (论文审核表)
- ReviewID (主键): INT
- StudentID (外键): NVARCHAR(20)
- ReviewComments: NVARCHAR(MAX)
- ReviewResult: NVARCHAR(20)
- ReviewDate: DATE
StudentFeedback (学生反馈表)
- FeedbackID (主键): INT
- StudentID (外键): NVARCHAR(20)
- TopicID (外键): NVARCHAR(20)
- FeedbackContent: NVARCHAR(MAX)
- FeedbackDate: DATE
数据字典
- Students
- StudentID: NVARCHAR(20), 主键,学生唯一标识,由触发器自动生成。
- Name: NVARCHAR(50), 学生姓名,非空。
- Gender: CHAR(1), 性别,检查约束限制为’M’或’F’。
- Major: NVARCHAR(50), 专业。
- Class: NVARCHAR(50), 班级。
- Phone: NVARCHAR(20), 联系电话。
- Instructors
- InstructorID: NVARCHAR(20), 主键,教师唯一标识。
- Name: NVARCHAR(50), 教师姓名,非空。
- Department: NVARCHAR(50), 所属部门。
- ResearchDirection: NVARCHAR(100), 研究方向。
- Phone: NVARCHAR(20), 联系电话。
- Administrators
- AdminID: NVARCHAR(20), 主键,管理员唯一标识。
- Name: NVARCHAR(50), 管理员姓名,非空。
- Username: NVARCHAR(50), 用户名,唯一且非空。
- Password: NVARCHAR(50), 密码,非空。
- PermissionLevel: INT, 权限级别,检查约束限制在1到10之间。
- ThesisTopics
- TopicID: NVARCHAR(20), 主键,毕业设计题目ID。
- Title: NVARCHAR(100), 题目标题,非空。
- Description: NVARCHAR(MAX), 题目描述。
- MaxStudents: INT, 最大可选此题目的学生数,检查约束确保大于0。
- RegistrationDeadline: DATE, 报名截止日期。
- Status: NVARCHAR(20), 题目状态,检查约束限制为’Open’, ‘Closed’, ‘Completed’。
- InstructorID: NVARCHAR(20), 外键,关联至Instructors表。
- StudentThesis
- StudentID: NVARCHAR(20), 组合主键部分,关联至Students表。
- TopicID: NVARCHAR(20), 组合主键部分,关联至ThesisTopics表。
- StartDate: DATE, 开始日期。
- EndDate: DATE, 结束日期。
- CurrentProgress: NVARCHAR(100), 当前进度。
- ProgressLogs
- LogID: INT, 主键,自增。
- StudentID: NVARCHAR(20), 外键,关联至Students表。
- TopicID: NVARCHAR(20), 外键,关联至ThesisTopics表。
- ProgressDescription: NVARCHAR(MAX), 进度描述。
- RecordDate: DATE, 记录日期。
- ThesisReviews
- ReviewID: INT, 主键,自增。
- StudentID: NVARCHAR(20), 外键,关联至Students表。
- ReviewComments: NVARCHAR(MAX), 审核评论。
- ReviewResult: NVARCHAR(20), 审核结果,检查约束限制为’Pass’, ‘Fail’, ‘Pending’。
- ReviewDate: DATE, 审核日期。
- StudentFeedback
- FeedbackID: INT, 主键,自增。
- StudentID: NVARCHAR(20), 外键,关联至Students表。
- TopicID: NVARCHAR(20), 外键,关联至ThesisTopics表。
- FeedbackContent: NVARCHAR(MAX), 反馈内容。
- FeedbackDate: DATE, 反馈日期。
- Sequence
- StudentID_Seq: 序列,用于生成唯一的StudentID。
触发器
- trg_InsertStudentID: 在Students表插入数据时,自动分配学生ID。
- trg_UpdateStudentThesis: 更新StudentThesis表时,自动记录进度日志。
- trg_DeleteStudent: 删除Students表中的学生时,同时删除关联的StudentThesis记录。