EDIT zu erhöhen: war ein Design-ProblemZusammengesetzte Primärschlüssel - Verwenden von Aktualisierungsbefehlen. Wie
mein überarbeiteten endgültigen ERD http://i.imgur.com/cgUC7.png
ich ein Computerprojekt für Computing eines Pegels am laufen. Das Projekt besteht aus einer Microsoft Access-Datenbank mit 6 Tabellen. Ich benutze vb.net, um die Anwendung für ein Studentenverfolgungssystem zu programmieren.
Mein ERD ist unten:
Mein Problem: Wie eine neue Verbindung Primärschlüssel in eine vorhandene Tabelle einfügen? Wenn ich StudID und courseid in tblContact erhöhe dann muß ich sie in tblStudentCourse erhöhen, die nicht an die richtigen Richtungen zu Aufzeichnungen führt zeigen ..
Für die Beziehungen der Durchsetzung ich den .relations mit dem Datensatz verwenden.
'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")}
Aber die letzte Zeile hier:
DTStudentCourses.PrimaryKey = New DataColumn() {DTStudentCourses.Columns("StudID"), DTStudentCourses.Columns("CourseID")}
Bedürfnisse verwendet werden, um die Schlüssel von tblStudentCourse abrufen, die ich unsicher bin, was todo
Wenn jemand einen Blick auf dieses Problem nehmen könnte Ich wäre sehr dankbar.
Harry
ERD Überarbeitete
Ich denke, Sie hätten eine viel bessere Chance auf eine Antwort, wenn Sie ein Hausaufgaben-Tag hinzufügen und reduzieren das Problem, den Compound-Schlüssel, ein * wenig * Code zu zeigen, willig, und einige Tabellenschemata. – Fionnuala
Warum haben Sie CourseID in tblContact? Wenn der Kontakt nur für eine Studenten-Kurs-Kombination relevant ist, muss der Kurs sicher erstellt werden, bevor ein Kontakt relevant ist? Wenn der Kontakt nur für einen Studenten relevant ist, ist die Kurs-ID nicht erforderlich. Es könnte sich lohnen, eine Autonummer-ID auf der Kursteilnehmertabelle zu betrachten. Ich denke, Ihre Probleme können auf Designprobleme zurückzuführen sein, daher lohnt es sich, eine Frage zum Design zu stellen. – Fionnuala
'Warum haben Sie CourseID in tblContact?' Weil ich dachte, dass ich die Eins-zu-viele-Beziehung zwischen tblStudentCourse und tblContact erzwingen muss, es sei denn, ich muss einen anderen Fremdschlüssel verwenden? – Apple