我有三个表学生,部门和大学数据库中的课程... 学生有一个UID作为主键 - >这是学生的唯一ID DEPARTMENT Dept_id作为主键 - >这是部门编号 课程的C_id作为主键 - >哪个是课程/科目Id检查一个实体的数据的完整性
我需要通过将学生的主键,部门和每门课程中的每个学生的课程。
UID Dept_id C_id marks
1 CS CS01 98
1 CS CS02 96
1 ME ME01 88
1 ME ME02 90
的问题是,如果我创建一个表像这样的标志的话,我觉得数据操作可能会插入例如一个学生的主键的错误组合
UID Dept_id C_id marks
1 CS CS01 98
1 CS CS02 96
1 ME CS01 88 //wrong C_id (course id) inputted by the DBA
1 ME ME02 90
在这种情况下,我怎么能阻止他这样做? 还有没有其他方式来存储每个学生的商标?我的意思是这样的:
UID Dept_id CS01 CS02
1 CS 98 96
3 CS 95 92
除了业务层应该确保数据操作员无法选择该部门的无效课程。 你不妨映射数据库中的这种关系。 – BenW 2010-07-13 13:45:36
谢谢你的建议。我想我会使用你的想法并将其修改为在课程表中包含Dept_id。 – 2010-07-14 05:00:40