Wie implementiere ich eine disjunkte Spezialisierung in einer Datenbank?

Sagen Sie, es gibt eine Datenbank für Studenten und Professoren (eine sehr einfache) und die relationale Datenbank ist die folgende:

GradStudent (_id_, name, gradStuff)
UndergradStudent (_id_, name, underGradStuff)
Professor (_id_, name)
Teaches(_prof_id_, _stud_id_)

Betrachtet man, dass die obige relationale Datenbank eine totale disjunkte Spezialisierung darstellen soll, d. H. Es gibt keine TabelleStudent aber eher zwei völlig getrennte, wenn ich dies in SQL schreibe, um die Datenbank zu implementieren, wie würde ich die Schüler-ID für das @ abrufTeaches Tabelle? Ich kann nicht herausfinden, wie ein Fremdschlüssel aus zwei verschiedenen Tabellen erstellt wird.

Ich schreibe diese Frage unter der Annahme, dass die SQL-Sprache nicht auf allen Plattformen unterschiedlich ist. Wenn eine Klärung erforderlich ist: Ich arbeite an Oracle SQL Developer.

Bearbeite :: Zusatzinfo / Erläuterung:

Für eine grafischere, einfachere Ansicht dessen, was ich erreichen möchte:

Ich möchte Folgendes in SQL-Code schreiben (ich weiß jedoch nicht, wie das möglich ist und weiß daher nicht, wie)

Ich entschuldige mich, wenn das Bild zu simpel ist, kann ich bei Bedarf weitere Attribute und Details hinzufügen, lass es mich einfach wissen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage