我需要一些设计表的帮助

时间:2011-05-12 14:28:55

标签: sql oracle database-design oracle10g

我想为大学管理系统设计一个表格,为此我创建了一个表格(CollegeDetails),它存储了大学代码(唯一键),学院名称,课程提供(EEE,ECE,CSE) ...)...

CollegeDetails

CollegeCode   CollegeName   CourseOffered
--------------------------------------------
1000          xyz           EEE,ECE,CSE
1001          ABC           MECH,AERO,EEE

我在这里面临一个问题。每个学院都包含许多课程,例如.xyz学院提供5门课程,abc学院提供8门课程...但我无法存储在一张桌子中,因此我创建了两个表CollegeDetails和CourseOffered .......

CollegeDetails

CollegeCode   CollegeName
--------------------------
1000          xyz

CourseOffered

CollegeCode   CourseOffer
-------------------------
1000          EEE 
1000          ECE
1001          EEE

但CourseOffered表正在重复(两列)。请帮助解决这个问题....我正在使用oracle 10g ....

2 个答案:

答案 0 :(得分:1)

快速破解将重复数据保留在课程表中是为了在大学代码和课程上创建一个独特的综合索引:

CREATE UNIQUE INDEX <index_name> ON courseoffered(collegecode, courseoffer);

对于你多次插入同一个键的进程/逻辑问题没有任何作用,但是当你尝试插入一个副本时,将索引放在它上肯定会指出它,因此问题出在哪里

答案 1 :(得分:1)

您可以通过创建Courses表,然后链接到CourseOffered表中的Courses PK来进一步规范化它。这样,您就可以存储课程名称,例如'EEE',在一个地方。