我想为大学管理系统设计一个表,为此我创建了一个表(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 xyzCourseOffered
CollegeCode CourseOffer
-------------------------
1000 EEE
1000 ECE
1001 EEE但是CourseOffered表正在被复制(两个列)。请帮助解决这个…。我使用的是oracle 10g…。
发布于 2011-05-12 22:37:01
将副本排除在courseoffered表之外的一个快速技巧是在collegecode和courseoffer上创建一个唯一的复合索引:
CREATE UNIQUE INDEX <index_name> ON courseoffered(collegecode, courseoffer);这对您多次插入相同键的过程/逻辑问题没有任何作用,但是当您尝试插入重复项时,将索引放在它上面肯定会指出问题所在。
发布于 2011-05-12 22:53:44
您可以通过创建课程表,然后链接到CourseOffered表中的课程PK来进一步规范化它。这样,您就可以存储课程名称,例如“‘EEE”,在一个地方。
https://stackoverflow.com/questions/5979547
复制相似问题