1

Ich suche nach Anleitungen zum Einrichten einer Datenbank, die ich erstelle. Ich denke, der beste Weg, um die Frage zu stellen, ist das spezifische Szenario zu beschreiben:Datenbanktabelle, die auf mehrere Datensätze verweist

Ich habe eine Datenbank, die Informationen über Schüler-Mitarbeiter an einer Schule halten wird.

Ich habe eine Tabelle namens "Semester", die Informationen über ein bestimmtes Semester enthält (z. B. "Herbst/Frühling/Sommer", Jahr usw.).

Ich habe eine andere Tabelle namens "Mitarbeiter", die Informationen über einen bestimmten Studenten-Mitarbeiter enthält (z. B. name, jobTitle, startDate, endDate). Ich möchte auch einen Verweis auf die Tabelle "Semester" haben, aus der hervorgeht, in welchen Semestern der Arbeitnehmer eingestellt wurde. So würde beispielsweise eine Spalte in der Tabelle "Mitarbeiter" anzeigen, dass dieser bestimmte Mitarbeiter während der Semester "Herbst 2010, Frühjahr 2011 und Herbst 2011" gearbeitet hat.

Das Problem ist, dass ich nicht weiß, wie mehrere Datensätze in einem Feld verweisen.

Ich bin mir sicher, dass dies ein ziemlich häufiges Szenario ist, ich bin mir einfach nicht sicher, wie ich das anstellen soll. Antworten, die auf MS Access oder SqlServer verweisen, wären hervorragend.

Danke.

+0

Das klingt nach einer Hausaufgabe. Wenn ja, könnten Sie dieses Tag hinzufügen. Es ist üblich, eine Verknüpfungstabelle zwischen zwei Entitäten zu verwenden, um eine Viele-zu-Viele-Beziehung zu erstellen. – Suirtimed

+0

Keine Hausaufgaben, nur ein Projekt, an dem ich arbeite - eine einfache App für meine Schulzeitung erstellen. – Eric

Antwort

2

Das klingt nach einer Beziehung von vielen zu vielen. In einem solchen Fall würden Sie wahrscheinlich eine junction table verwenden.

Mitarbeiter (empID, name)

1 bob 
2 moe 
3 george 

Semestern (semid, name)

1 fall 2010 
2 spring 2010 

EmploymentHistory (empID & semid)

1 1 (bob was employed fall 2010) 
1 2 (bob was employed spring 2010) 
2 2 (moe was employed fall 2010) 
+0

Ich bekomme es jetzt. Hab noch nie von einem Abzweigtisch gehört, aber daran hätte ich gedacht. Vielen Dank. – Eric

+0

Sicher, viel Glück mit Ihrem Projekt! –

+0

Wiki wird offensichtlich von unqualifizierten und unerfahrenen Leuten geschrieben, die lernen, wie sie gehen; Sie verwenden alle Arten von adorable Namen für technische Gegenstände, die einen Namen haben. Der relationale Ausdruck für eine Tabelle, die nur eine Viele-zu-Viele-Beziehung enthält (nur die zwei FKs), ist ** Assoziative ** Tabelle. Wenn es Daten enthält, ist es nur eine Tabelle; in IDEF1X-Begriffen eine ** abhängige ** Tabelle. – PerformanceDBA

1

Sie können dies mit mehreren Fremdschlüsseln der Semestertabelle (nicht Semester) aus der Employee-Tabelle (nicht Employees) erreichen.

Wenn Sie die Semester, die ein Mitarbeiter gearbeitet hat, verfolgen möchten, würde ich das in eine WorkHistory-Tabelle, die Eins-zu-viele mit Mitarbeiter und viele zu viele mit Semester ist, normalisieren.