0

Also meine Absicht hier ist, dass die "Employee" 2 Referenzen auf den gleichen Primärschlüssel in der "EmployeeContactInformation" Tabelle enthalten. Der Grund dafür ist, dass ich möchte, dass mein Mitarbeiter zwei verschiedene Kopien derselben Tabelle enthält. Z.B. 1 für work contact info, ein anderer für home contact info.2 Fremdschlüssel, die 1 Primärschlüssel referenzieren

Wie würde ich das umsetzen und welche Beziehung würde ich verwenden?
Ich gehe von 1 zu vielen?

Aktuelle Datenbank Screenshot

Current database screenshot

Antwort

0

Ändern Sie das Design Ihrer Datenbank:

  • Erstellen Sie eine Tabelle mit dem Namen ContactInfoTypes. Es enthält die Definitionen der einzelnen ContactInfoTypes (in Ihrem Fall: workContactInfo und homeContactInfo). Es wird zwei Spalten haben (contactTypeId, contactTypeName)
  • Fügen Sie eine zusätzliche Spalte zu ContainInfoType (DATATYPE-Nummer) in Ihrer EmployeeContactInfo TABLE hinzu. Die Spalte ContactInfoType einen Foreign-Key Wert von über TABELLE ContactInfoTypes

halten Wenn Sie einen Kontakt in der Tabelle einfügen: EmployeeContactInfo, möchten Sie Insert zwei Zeilen (eine mit dem Wert Nummer gespeichert gegen workContactInfo und eine mit dem homeContactInfo).

0
  1. Mitarbeiter mehrere Kontakt Infos haben kann (zu Hause und arbeiten wie Sie erwähnt). Daher sollte die Beziehung eins zu viele sein
  2. Um dies zu modellieren, sollten Sie einen Fremdschlüssel der einen Seite der Beziehung in die viele Seite hinzufügen. Daher sollten Sie eine employee_id-Spalte in der EmployeeContact-Tabelle hinzufügen. Auf diese Weise wird jede Mitarbeiterkontaktzeile mit einem Mitarbeiter verbunden
  3. Spalte "Arbeitserweiterung" in der Mitarbeitertabelle kann in die EmployeeContact-Tabelle verschoben und in "Nebenstelle" umbenannt werden, da es sich um eine Telefonnummer für ein privates Telefon handelt oder Arbeit Telefon
  4. „Home Telefonnummer“ Spalte in der EmployeeContact Tabelle sollte nur „Telefonnummer“ umbenannt werden, da die Tabelle für Heim und Arbeit
  5. sollte eine weitere Spalte in der EmployeeContact Tabelle speichern, die Informationen über die Arbeit spart/home
+0

Ich habe Ihre Kommentare implementiert und sie sind in Ordnung. Mein System funktioniert jedoch, indem ich auf den Mitarbeiter zugreife. Dann können Sie die Art der Kontaktinformationen auswählen. Mit der Antwort, die du zur Verfügung gestellt hast. Wird das möglich sein? –

+0

Sie können eine Abfrage wie diese verwenden, um auf die Mitarbeiterkontaktinformationen zuzugreifen, wenn Sie eine Mitarbeiter-ID haben. Select * From employee_contact_info where employee_id = ? Sie sollten die employeeId übergeben, wo das Fragezeichen – abhaybhatia

+0

ist, lassen Sie mich wissen, wenn Sie nach etwas anderem suchen – abhaybhatia

Verwandte Themen