首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现报表卡生成系统

实现报表卡生成系统
EN

Stack Overflow用户
提问于 2016-03-15 14:16:02
回答 1查看 1.1K关注 0票数 1

我想在phpmysql中创建一个系统,用来计算学生成绩并显示结果,这样学校就可以打印一张成绩单。

当教师登录到系统时,他/她只会看到他/她任教的学生。

数据库中已经有三个表(teachers表、students表、subjects表)。

老师教多门课,老师教多节课。

我如何在数据库中实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-15 14:44:52

这个问题并不适合于StackOverflow,但我将尝试通过为您的表提供第一个草稿来开始:

教师

代码语言:javascript
复制
TeacherId INT NOT NULL Primary key Autogenerated
FirstName VARCHAR(100)
LastName VARCHAR(100)

学生

代码语言:javascript
复制
StudentId INT NOT NULL Primary key Autogenerated
FirstName VARCHAR(100)
LastName VARCHAR(100)

主题

代码语言:javascript
复制
SubjectId INT NOT NULL Primary key Autogenerated
SubjectName VARCHAR(100)

TeacherXSubject (教师与科目之间的联系)

代码语言:javascript
复制
TeacherXSubjectId INT NOT NULL Primary key Autogenerated
TeacherId INT NOT NULL FK -> Teacher
SubjectId INT NOT NULL FK -> Subject

应该放置一个唯一的键(TeacherIdSubjectId)

班级

代码语言:javascript
复制
ClassId INT NOT NULL Primary key Autogenerated
ClassName VARCHAR(100)

TeacherXClass (一位教师可以授课的课程)

代码语言:javascript
复制
TeacherXClassId INT NOT NULL Primary key Autogenerated
TeacherId INT NOT NULL FK -> Teacher
ClassId INT NOT NULL FK -> Class

应该放置一个唯一的键(TeacherIdClassId)

ClassXStudent (学生可以参加的课程)

代码语言:javascript
复制
ClassXStudentId INT NOT NULL Primary key Autogenerated
ClassId INT NOT NULL FK -> Class
StudentId INT NOT NULL FK -> Student
Grade INT    -- type may depend on how the grade looks (numeric vs. A, B, ...)

关于第一个要求:见他/她任教的学生

代码语言:javascript
复制
SELECT S.*
FROM Student S
   INNER JOIN ClassXStudent CxS ON CxS.StudentId = S.StudentId
   INNER JOIN TeacherXClass TxS ON TxS.ClassId = CxS.ClassId
WHERE T.TeacherId = <current teacher id>

试一试,带着更有针对性的问题回来:)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36013839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档