2016-04-21 9 views
0

ich durch unsere Daten suchen und es gibt eine Handvoll Tische in unserer Oracle-Datenbank, die mit zwei eine zu viele Beziehungen zeigen: http://i.stack.imgur.com/icGcV.pngTabellen zeigt sich mit zwei: ‚one to many‘ Beziehungen in SQL Developer

Ich bin nicht sicher, warum das passieren würde, und sollte ich etwas verändern oder reparieren?

(ich diese Datenbank nicht erstellt haben, ich nur, es zu verstehen versuchen!)

+0

Das Bild zeigt nur zwei Pfeile. Sie müssen mehr Details angeben. –

+0

was könnte ich mehr zeigen? Ich möchte die Tabellen nicht selbst veröffentlichen, ich möchte nur verstehen, warum einige Tabellen mit zwei solchen Beziehungen verknüpft sind und andere nicht. – neongreenfruit

Antwort

1

Too für einen Kommentar lang, lassen Sie sich ein ganz einfaches Beispiel sehen:

CREATE TABLE persons 
(
    id  NUMBER PRIMARY KEY, 
    name VARCHAR2(10) 
) 
/ 
CREATE TABLE marriages 
(
    wife  NUMBER  REFERENCES persons(id), 
    husband NUMBER  REFERENCES persons(id) 
) 
/ 
CREATE TABLE dogs 
(
    id  NUMBER PRIMARY KEY, 
    name  VARCHAR2(10), 
    owner NUMBER  REFERENCES persons(id) 
) 
/

Hier haben Sie einen Tisch mit zwei verschiedenen FKs zum selben Tisch. Gleichzeitig haben Sie eine weitere Tabelle mit einem einzelnen FK in derselben Tabelle. Also, es ist kein Problem zu beheben, aber ein Teil des DB-Designs zu verstehen; Ihre DB kann gut oder schlecht entworfen sein, aber die Existenz solcher Situationen sagt nichts darüber aus.

+0

Ok, also lassen Sie mich sehen, wenn ich verstehe, geschah dies einfach im Datenbankmodell, weil es mehr als einen Fremdschlüssel von einer einzelnen Tabelle zu einer anderen einzelnen Tabelle gab. Das macht Sinn, wenn ich richtig verstehe – neongreenfruit

+0

Du hast recht. Das könnte sogar ein schlechtes Design sein, aber das ist eine andere Frage ... – Aleksej