从具有泛化关系的表创建视图

时间:2014-03-02 14:03:05

标签: sql database oracle

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.subjectclass.teacherclass_registration.gradeclass_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
/

/

1 个答案:

答案 0 :(得分:0)

我没有给你创建视图语句,但这里有一些链接可以帮助你学习视图及其相关概念。

first

second

通过这些链接,因为这是你的任务,所以尽量亲自去做。

如果你在这里遇到任何问题。