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

Antworten auf die Frage(10)

Ihre Antwort auf die Frage