編輯:是一個設計問題複合主鍵 - 使用更新命令。如何增加
我的最終修訂ERD http://i.imgur.com/cgUC7.png
我經歷了ALEVEL計算的計算項目。該項目由一個6表格Microsoft Access數據庫組成。我正在使用vb.net爲學生跟蹤系統編寫應用程序。
我ERD低於:
我的問題:如何插入一個新的複合主鍵到現有的表? 如果我增加StudID和CourseID在tblContact然後我需要增加他們在tblStudentCourse導致沒有指向正確的方向記錄..
爲強制執行我使用與數據集的.relations的關係。
'Student - StudentCourse
DS.Relations.Add(New DataRelation("StudStudCorRelation", DTStudents.Columns("StudID"), DTStudentCourses.Columns("StudID"), True))
'Course - StudentCourse
DS.Relations.Add(New DataRelation("CourStudCorRelation", DTCourses.Columns("CourseID"), DTStudentCourses.Columns("CourseID"), True))
StudCourseCompPK(0) = DTStudentCourses.Columns("StudID")
StudCourseCompPK(1) = DTStudentCourses.Columns("CourseID")
StudCourseContactCompPK(0) = DTContacts.Columns("StudID")
StudCourseContactCompPK(1) = DTContacts.Columns("CourseID")
StudCourseStudTMACompPK(0) = DTStudentTMAS.Columns("StudID")
StudCourseStudTMACompPK(1) = DTStudentTMAS.Columns("CourseID")
'Enforces the relations between these 2 keys
DS.Relations.Add(New DataRelation("CPKContact", StudCourseCompPK, StudCourseContactCompPK, True))
DS.Relations.Add(New DataRelation("CPKStudentTMA", StudCourseCompPK, StudCourseStudTMACompPK, True))
DS.EnforceConstraints = True
DTStudentCourses.PrimaryKey = New DataColumn() {DTStudentCourses.Columns("StudID"), DTStudentCourses.Columns("CourseID")}
但這裏的最後一行:
DTStudentCourses.PrimaryKey = New DataColumn() {DTStudentCourses.Columns("StudID"), DTStudentCourses.Columns("CourseID")}
需要使用檢索來自tblStudentCourse這我不確定什麼待辦事項
如果任何人都可以在這個問題看看鑰匙我會很感激。
哈利
修訂ERD
我認爲如果您添加作業標籤並減少添加複合鍵,*小*代碼以顯示意願以及某些表格模式,您將有更好的答覆機會。 – Fionnuala 2012-04-03 11:14:00
爲什麼你在tblContact中獲得CourseID?如果聯繫人僅與學生課程組合相關,那麼必須在聯繫人有關之前創建學生課程?如果聯繫人僅與學生有關,則不需要課程編號。在學生課程表上可能需要考慮自動編號。我認爲你的問題可能是由於設計問題,所以可能值得在設計上發佈一個問題。 – Fionnuala 2012-04-03 22:00:36
'你爲什麼要在tblContact中獲得CourseID?'因爲我認爲我需要強制執行tblStudentCourse和tblContact之間的一對多關係,除非我需要使用另一個外鍵? – Apple 2012-04-04 10:44:36