Ich habe eine Super Hero SQL-Datenbank mit einer SuperPerson-Tabelle und einer Disaster-Tabelle. Es gibt zwei Beziehungen zwischen SuperPerson und Disaster, Create und Prevent. Die SuperPerson-Tabelle hat eine Disposition-Spalte, die uns sagt, ob sie böse oder gut ist. Wie kann ich es so einrichten, dass nur ein SuperPerson, der gut ist, an der Prevent-Beziehung teilnehmen kann und umgekehrt für die Create-Beziehung?SQL erlaubt einer Entität nur dann an einer Beziehung teilzunehmen, wenn sie bestimmte Anforderungen erfüllt
Ich habe darüber nachgedacht, zwei neue Tabellen zu erstellen, SuperHero und SuperVillian, die auf die SuperPerson-Tabelle verweisen, ist dies die logischste Aufgabe oder gibt es PL/SQL, mit denen ich diese Einschränkung erzwingen kann?
Edit: Here's a link to a schema of the database so far
Wenn nur bestimmte Mitglieder an einer Beziehung teilnehmen können, ist dies ein guter Hinweis darauf, dass Ihr Datenmodell zwei verschiedene Arten von Entitäten zusammenführt. Das PL/SQL, das zum Erzwingen der Einschränkung erforderlich ist, ist normalerweise komplexer als einfach zwei Tabellen zu haben. –
@ JeffreyKemp Das ist wahr, aber in diesem Zusammenhang würde ich SuperPerson in SuperHero und SuperVillian aufteilen, was wenig oder gar keinen Unterschied hätte. Ist das eine Verschwendung von Tischen? –
können Sie nach guter 'SuperPerson' suchen, während Sie eine' Prevent'-Beziehung erstellen und umgekehrt für 'Create'. Warum möchten Sie eine Einschränkung auf Entitätsebene setzen? – Aman