2009-07-07 18 views
0

Ich muss eine Datenbank für A-Level-Studenten entwickeln, und ich habe Probleme bei der Kategorisierung ihrer Fächer. Sie haben insgesamt 13 Fächer und jeder Schüler kann aus 13 Themen beliebig viele Fächer und Kombinationen auswählen.
Wie kann ich mit diesem Problem umgehen? Wie kann ich eine Datenbank erstellen, um den Datensatz der einzelnen Fächer zu speichern?brauche Hilfe bei der Datenbankerstellung

Kann mir jemand helfen?

Antwort

3

Erstellen Sie eine Tabelle mit einer Liste von Schülern und erstellen Sie eine Tabelle mit einer Liste von Themen. Fügen Sie in einer anderen Tabelle Zeilen mit der ID des Schülers und der ID des Themas ein, das sie belegen.

id | student 

id | subject 

id | subject id | student id 
1

Tabelle: subject

Spalten: id, subject_name

Tabelle: student

Spalten: id, student_name

Tabelle: student_subject_map

Spalten: id, student_id (student.id - Fremdschlüssel), subject_id (subject.id - forei gn key)

0

Sie hätten drei Tabellen: eine Themen-Tabelle, in der die Betreff-Informationen gespeichert sind; eine Students-Tabelle, in der die Studenteninformationen gespeichert sind, und eine Enrollment-Tabelle, die zwei Spalten, eine Studenten-ID und eine Subjekt-ID enthält.

, um eine Liste der Themen eines Schülers Tun erhalten Sie eine Abfrage in etwa so aus:

SELECT Subjects.name FROM Subjects INNER JOIN Enrolment ON Enrolment.subject_id = Subjects.subject_id WHERE Enrolment.student_id = '(student_id)' ORDER BY Subjects.name ASC 
0

Und um zu sehen, was alle Probanden ein Student,

ausgewählt hat

wählt subject_id von student_subject_map wo student_id == < Studenten-ID>;

Ersetzen Sie < Student-ID> mit der ID des Schülers. Die nächste Ebene wäre, den Subjektnamen anstelle der subject_id mit der ID, Subjektname Übereinstimmung in table_subject zu erhalten. (Hinweis: Eine verschachtelte Select-Anweisung)

+1

NEIN! KEINE verschachtelte Select-Anweisung. Schrecklicher Rat. Sie möchten einen Beitritt. – tomfanning

Verwandte Themen