我需要知道复合键是否允许在其中复制值?
例如:
我有两张桌子。
1)表“学生”,其字段为studentID(PK)、标准、地址。
2)表'Class‘,它有字段classID(PK)、类名、studentID(FK)。
通过拥有复合键as (classID,studentID),它是否允许重复值??
我想知道的是,是否有可能在类表的classID字段中输入重复的值?因为我不能在classID中输入重复的值,因为它是一个主键字段。
复合键能帮助我实现这一点吗?请帮我解决这个问题。
发布于 2013-08-20 12:18:53
在复合键中,整组元素必须是唯一的,但每个元素可以重复多次。
因此,
Student中有几条记录,studentID = 1,2,3.Class也是如此->,然后您的第三个表具有复合键
(1, 1)
(2, 2)
(1, 2)
...您可以看到,有几个记录具有相同的studentId (1在这里)或classId (2在这里),但是整个组合从来都不是相同的两倍。
发布于 2013-08-21 09:44:51
它允许复制。唯一不允许的可能性是复合键(studentID,classID)的复制,如"C.Champagne“所说的那样。因此,我们可以有像(1,2) (1,3) (2,3)这样的组合,但不再有(1,2)或(1,3)这样的组合。
对我的问题的第二个回答是,我未能使用前两个表的主键为第三表(“学校”)添加复合键。
第三表“学校”有字段schoolID(PK)、classID(FK)、studentID(FK)。但我面临的问题是,我不能为带有字段的表'school‘(classID、studentID、schoolID)添加一个复合键。我犯的错误是,我试图把外键添加到学校的桌子上,引用前两张表,这是很有力的工作。一开始我所做的是:
修改表学校添加外键(studentID)引用学生(StudentID);
修改表学校添加外键(classID)引用类(ClassID);
我犯的错误是,我试图从班级和学生表中添加外键。
但是,最后,通过将外键添加到学校表中,下面的工作是:
修改表学校添加外键(studentID,classID)引用类(studentID,classID);
这里提供作为类表的引用已经足够了,因为类表已经保存了studentID,classID。
这就是它最终的工作方式。
https://stackoverflow.com/questions/18334762
复制相似问题