0

外部キーに問題があります。

マスターテーブルは次のとおりです。

Course (courseName, courseId) 

そしてPKはcourseId

2 番目の表は次のとおりです。

Section (sectionId, courseId) 

そして PK は(sectionId, courseID)、FK はcourseID reference Course(courseId)

問題のテーブルは次のとおりです。

GradeReport (studentId, sectionId, courseId, grade) 

そしてPKは(studentID, sectionID, courseID)

FKは

  • courseId reference Course(courseID)
  • sectionId reference Section(sectionID)

( ( courseId , sectionId) 参照 Section(courseId, sectionID) の権限はありません)

初FKもOK!しかし、2番目のものは私にエラーを与えます:

ORA-02270: この列リストに一致する一意キーまたは主キーがありません

どうすればこの問題を解決できますか?

4

2 に答える 2

2

Section の主キーは (sectionId, courseID) なので、GradeReport の外部キー制約は (sectionID, courseID) でなければなりません。

実際、CourseID はこの外部キー制約に含まれるため、Course を参照する GradeReport に外部キー制約は必要ありません。

于 2013-04-17T14:50:19.133 に答える
0

質問を完全には理解していませんが、これらのテーブルがあれば、外部キーは次のようになります。

  • セクション(すでに問題ないと思います)

    FOREIGN KEY ..name.. REFERENCES Course(CourseID)
    
  • GradeReport (ここに問題があると思います)

    FOREIGN KEY ..name.. REFERENCES Section(SectionID, CourseID)
    

GradeReport.CourseIDの外部キーはすでにSectionID, CourseIDへの外部キーの一部であるため、別の外部キーは必要Sectionありません。Section.CourseIDSectionCourse

于 2013-04-17T14:54:42.563 に答える