我想在php和mysql中创建一个系统,用来计算学生成绩并显示结果,这样学校就可以打印一张成绩单。
当教师登录到系统时,他/她只会看到他/她任教的学生。
数据库中已经有三个表(teachers表、students表、subjects表)。
老师教多门课,老师教多节课。
我如何在数据库中实现这一点?
发布于 2016-03-15 14:44:52
这个问题并不适合于StackOverflow,但我将尝试通过为您的表提供第一个草稿来开始:
教师
TeacherId INT NOT NULL Primary key Autogenerated
FirstName VARCHAR(100)
LastName VARCHAR(100)学生
StudentId INT NOT NULL Primary key Autogenerated
FirstName VARCHAR(100)
LastName VARCHAR(100)主题
SubjectId INT NOT NULL Primary key Autogenerated
SubjectName VARCHAR(100)TeacherXSubject (教师与科目之间的联系)
TeacherXSubjectId INT NOT NULL Primary key Autogenerated
TeacherId INT NOT NULL FK -> Teacher
SubjectId INT NOT NULL FK -> Subject应该放置一个唯一的键(TeacherId,SubjectId)
班级
ClassId INT NOT NULL Primary key Autogenerated
ClassName VARCHAR(100)TeacherXClass (一位教师可以授课的课程)
TeacherXClassId INT NOT NULL Primary key Autogenerated
TeacherId INT NOT NULL FK -> Teacher
ClassId INT NOT NULL FK -> Class应该放置一个唯一的键(TeacherId,ClassId)
ClassXStudent (学生可以参加的课程)
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, ...)关于第一个要求:见他/她任教的学生
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>试一试,带着更有针对性的问题回来:)。
https://stackoverflow.com/questions/36013839
复制相似问题