2017-02-20 7 views
1

Gibt es eine Möglichkeit, eine 0 or 1 zu 0 or 1 Beziehung in einer Datenbank zu erstellen?Null-oder-Eins zu Null-oder-Eins-Beziehung

Zum Beispiel sagen wir, ich habe eine Tabelle von Managern und eine Tabelle von Künstlern. Ein Manager kann nur einen Künstler verwalten, und ein Künstler kann nur einen Manager haben. Ein Manager kann jedoch ohne einen Künstler auskommen (d. H. Nach einem Künstler suchen, der verwaltet werden kann), und ein Künstler hat möglicherweise keinen Manager.

Gibt es eine Möglichkeit, dies zu tun? Das Erstellen eines Fremdschlüssels in einer der beiden Tabellen würde lediglich eine 1 to many Beziehung erzeugen.

Antwort

1

Das ist ziemlich einfach.

Sie haben eine 1: 1-Beziehung, die möglicherweise nicht existiert.

So haben Sie eine uniqueforeign key die nullable ist und daher angegeben werden kann, um nichts zu zeigen.

Etwas wie:

CREATE TABLE manager (
    id int primary key, 
    .... 
); 

CREATE TABLE artist (
    id int primary key, 
    manager_id int unique references manager(id) 
    ... 
); 

Jetzt kann der Künstler nicht mehr als einen Manager haben, und der Manager kann nicht mehr als ein Künstler. Und der Künstler darf keinen Manager haben.

0

Ich würde ein Fremdschlüsselfeld auf die Manager-Tabelle setzen, die auf den Künstler zeigt, den sie verwalten, Nullen zulassen.

Sie können dann verwenden, um den Künstler zu finden, den sie verwalten, und den Manager für einen bestimmten Künstler finden.

0

Wie ich denke, sollte es separate table zu verwalten Beziehung sein. Es enthält beide Schlüssel der Tabelle, aber es wird eine Einschränkung geben, um doppelten zusammengesetzten Schlüssel zu verhindern.

Auf diese Weise müssen Sie keine Schlüssel für Manager einzufügen, die, oder Künstler nicht Künstler haben, die (Vermeidet Null Einträge) keine-Manager haben

0

In RDBMS Sie zwischen drei Arten von Beziehungen bekommen Tische

eins zu eins; eins zu vielen; viele zu viele

Es gibt nichts, wie man zu Null Beziehung, aber Sie können eine Null Beziehung erhalten, während das heißt einige Daten arbeiten existiert kann, wo 1-0 Beziehung passiert, aber man kann 1-0 Beziehung nicht explizit definieren wie eins-eins, eins-zu-viele oder viele-zu-viele-Beziehungen.

+0

Sie können diese Beziehung auch nicht definieren wie 'Eins zu Eins' oder' Eins zu Vielen'. Sie sind eigentlich Konzepte und es gibt verschiedene Möglichkeiten, auf sie zu trainieren. – Lali

+0

Nun ja, ich meinte das auch (Y) –

Verwandte Themen