2016-03-20 3 views
0

Ich bin mir nicht sicher, ob dies das richtige Forum ist, um diese Frage zu stellen, aber ich nehme an, es ist eine technische Frage, so hier zu posten.Tabellen Hierarchie in einer Datenbank

Es wurde während eines Interviews gefragt;

Wir haben 4 Tabellen .. Land, Stadt, Bezirk, Unterbezirk. Wie man eine Hierarchie von ihnen in der Datenbank herstellt (Eine Möglichkeit ist das Hinzufügen eines fremden Verweises des Elternteils in der untergeordneten Tabelle ... aber was ist anders herum?)

Ich kann keinen anderen Weg finden, als alle Informationen hinzuzufügen ein Tisch, aber die Frage war, wie man Hierarchie von ihnen machen? was bedeutet, dass mehrere Tabellen beteiligt sind.

Könnte jemand bitte vorschlagen, was könnte der andere Weg sein?

+0

Siehe http://stackoverflow.com/a/35699997/562459 –

+0

Interviewer fragte: „withou t machen ausländische Referenz des Elternteils in der Kindtabelle "und die Lösungen, die in dem erwähnten Faden zur Verfügung gestellt werden, haben Elternreferenz. –

+0

* "ohne Fremdbezug von Eltern in Untertabelle zu machen" *: Das steht nicht in Ihrer Frage. Vielleicht solltest du deine Frage so bearbeiten, dass sie die gesamte Frage klar und deutlich enthält. –

Antwort

0

Tgere sind viele Ansätze. Einige von ihnen sind gut aus der Sicht der Normalisierung, einige von Leistung und einfach zu bedienen Sichtweise. Einige von ihnen:

  • Selbstreferenz:

enter image description here

  • -Code enthält Informationen. zum Beispiel 123000 - ist ein Bezirk, 123001 - 001 Unter Kreis Bezirk 123

enter image description here

  • Der normalisierte Art und Weise (Link Kreis-Stadt kann subdistrict-Stadt geändert werden)

enter image description here

+0

Nicht in der Lage, die Lösung zu verstehen, wie Interviewer gefragt hat, "ohne fremde Referenz des Elternteils in der Kindtabelle zu machen" und alle drei angebotenen Lösungen haben die Elternreferenz oder habe ich die Lösungen falsch verstanden? –

+0

@HappyDev, bitte detaillierte Beschreibung! Wie viele Tische sollen sein? Wenn 1, einfach alle Informationen in 1 Tabelle, und Sie haben absolut de normalisierten Speicher. Wenn es mehr als 1 Tabelle sein sollte, sollten Sie Daten von einer Tabelle auf andere verweisen. Wenn Sie FK nicht verwenden möchten, können Sie den Ansatz wie in Beispiel 2) verwenden, in dem Kind und Eltern die Codes 123000 und 123001 haben – burzhuy