Wie wende ich Untertypen in eine SQL Server-Datenbank an?
Ich arbeite an einem Programm, in dem Sie Beschwerden registrieren können. Es gibt drei Arten von Beschwerden:internal
(Fehler von Mitarbeitern),external
(Fehler von einem anderen Unternehmen) undsupplier
(Fehler eines Lieferanten). Sie enthalten verschiedene Daten, die nicht freigegeben werden können. Ich habe derzeit 4 Tabellen (Beschwerde, Mitarbeiter, Firma und Lieferant). Hier ist eine Visualisierung der Tabellen:
Ich verstehe die Untertypen grundlegend, kann sie jedoch scheinbar nicht von einer ERD in eine tatsächliche SQL Server-Datenbank oder zumindest in diesem Szenario übersetzen. So ungefähr sehen die 4 Tabellen aus (irrelevante Attribute weggelassen):
Beschwerd
ComplaintId PK
Mitarbeite
EmployeeId PK
Mitarbeiternam
Unternehme
CompanyId PK
Name der Firm
Lieferan
SupplierId PK
Name des Anbieter
Bei der Registrierung einer Beschwerde wird der Fehler von einem der drei Typen verursacht und alle speichern unterschiedliche Informationen. Wie können Informationen in diesem Fall am besten gespeichert werden? Ich habe darüber nachgedacht, 2 Diskriminatoren in die Beschwerde-Tabelle aufzunehmen:ComplaintType
undId
Ich kann also angeben, welche Tabelle überprüft werden soll und welche ID ich benötige, aber das ist weder sehr sauber noch effizient.
Bitte helfen