【发布时间】:2014-03-02 14:03:05
【问题描述】:
这里是 SQL 新手,我需要有关复杂(?)视图的帮助。这是一个数据库,允许教师为教师负责的每个班级设置学生缺勤的成绩和次数。
我的桌子是:
USERS (user_id, name, surname)
STUDENTS(student_id (fk to users.user_id), student_number number)
TEACHERS(teacher_id (fk to users.user_id), title varchar2)
CLASSES(class_id, subject, teacher_id(fk to teacher.teacher_id)
CLASS_REGISTRATION(class_id (fk to classes.class_id), student_id (fk to students.student_id), grade, absent_number)
我正在尝试创建两个视图。学生可以看到他注册的每个课程的class.subject、class.teacher、class_registration.grade、class_registration.absent_number。
另一个视图是供教师查看的,他们可以查看教师负责的每个班级的学生姓名、班级主题、年级、缺勤编号。
用户的泛化 -> 学生、老师是必需的,而这主要是给我带来的问题。
编辑:这是我写的一个查询,它似乎给出了教师视图所需的结果,但我不确定这是最好的方法
CREATE OR REPLACE FORCE VIEW "TEACHER_VIEW" ("NAME", "SURNAME", "SUBJECT", "GRADE", "ABSENT") AS
select u.name, u.surname, c.class, r.grade, r.abstent
from users u, class_registration r, students s, class c
where u.user_id = s.student_id
and s.student_id = r.student_id
and c.class_id = r.class_id
/
/
【问题讨论】:
-
向我们展示您创建这些视图的尝试。我们希望看到一些 SQL,即使它是错误的。