2016-07-29 9 views
2

Betrachten Sie ein System, in dem Mitarbeiterdatensatz gespeichert wird. Die Datenbank sollte den Namen des Mitarbeiters, die Abteilung usw. speichern. Jeder Mitarbeiter hat einen Berichtsmanager, dem er Bericht erstatten muss. Es gibt 4 Ebenen der Mitarbeiter -Zeichnen ERD für diese Beispieldatenbank

  1. Junior Ingenieur
  2. Senior Engineer
  3. Teamleiter
  4. Senior Team

Jeder Junior-Ingenieur zum Senior Ingenieur zu berichten hat Blei. Jeder Senior Developer muss sich an den Teamleiter melden. Jeder Teammanager muss sich an die Führung des A-Teams melden.

kam ich zu dieser Idee: -

Es zwei Tisch

1.Employee

2.Reporting

Employee table notwendigen Informationen wie EmployeeID enthalten würde, sein Name des Mitarbeiters, Name der Abteilung usw .; Primärschlüssel ist EmployeeID

Reporting Table würde zwei Spalten EmployeeID und ReportingMangerID enthalten; EmployeeID ist ein Fremdschlüssel, der sich auf den Primärschlüssel der Employee-Tabelle bezieht.

Ich weiß nicht, ob ich richtig bin.

Antwort

1

Wenn die folgenden Bedingungen erfüllt ist:

  • einem Mitarbeiter Berichte 0..1 andere Mitarbeiter
  • ein Mitarbeiter hat 0..n Berichte

Dann können Sie "Manager" haben als Attribut für die Mitarbeitertabelle.

Wenn die folgenden Bedingungen erfüllt ist:

  • ein Mitarbeiter Berichte andere Mitarbeiter 0..n
  • einen Mitarbeiter hat 0..n Berichte

Dann benötigen Sie eine Struktur haben, .

+0

Ich denke, die erste Bedingung ist wahr.In diesem Fall wird keine zusätzliche Tabelle benötigt, oder? – BlackCat

+0

"Manager" wird effektiv zu einem Attribut von "Mitarbeiter", so dass Sie keine zusätzliche Tabelle benötigen. –

+1

Da diese Frage mit "ERD" gekennzeichnet ist, beachten Sie, dass in ER ein Attribut eine Zuordnung von einem Entitätsset zu einem Wertsatz ist, nicht von einem Entitätsset, das auf ein Entitätsset festgelegt wurde. Was Sie beschreiben, ist eine denormalisierte Beziehung und kein Attribut. – reaanb

Verwandte Themen