2016-03-25 9 views
1

Ich habe eine Client-Tabelle, in der in einigen Fällen ein einzelner Client eine Beziehung zu einem anderen Client hat, den wir als Eltern festlegen möchten und in diesen Fällen mehrere Clients zu einem Elternteil sein könnten.Tabelle mit Beziehung zu sich selbst

Dies würde für vielleicht 10 bis 20 Prozent der Datensätze gelten und der Rest hätte keine Beziehung zueinander. Ich denke an eine untergeordnete Tabelle mit der Client-ID und der übergeordneten ID.

Ist das die normale Art und Weise, wie diese Art von Beziehung behandelt wird?

Dies ist eine ältere Datenbank und im Allgemeinen haben sie eine Spalte in diesen Fällen hinzugefügt, aber ich finde es nicht zu spät, es richtig zu tun.

+0

Diese Funktion heißt: hierarchische Daten. –

Antwort

1

Wenn jeder Kunde nur die folgenden dann ein Elternteil haben kann fein: -

ID ClientInfo1 ClientInfo2 ParentID 

Where ParentID = ID of the parent record. 

Oder wenn mehrere Eltern dann haben, können Sie eine andere Tabelle wollen ja

ClientID ParentID 

Auf diese Weise können Sie haben Mehrere Eltern für jeden Kunden

Sie müssen 1 zu vielen und vielen zu vielen Beziehungen nachschlagen und entscheiden, welche korrekt ist.

+0

Zuerst habe ich daran gedacht, aber in den meisten Fällen gibt es keine Beziehung so die ParentID wäre null für 80 bis 90% – user1167777

+0

das ist kein Problem - Sie würden die Eltern mit JOIN finden - Sie können eine Tabelle auf sich selbst beitreten und es wird nicht Achten Sie auf Nulls, vorausgesetzt Ihre Abfrage wird korrekt geschrieben. Für die zweite Option von Vielfachen haben Sie nur Einträge, wo es eine Beziehung gibt, so dass Sie keine Nullen dort haben werden. –

+0

http://sqlfiddle.com/#!9/afcd0/7 <- wird Ihnen hoffentlich zeigen, was ich für die 1 zu viele meine –

Verwandte Themen