2016-05-20 4 views
3

Ich versuche ein Datenbank-ER-Diagramm zu entschlüsseln, das mir ein Lehrer geholfen hat. Ich versuche hauptsächlich herauszufinden, wie man die benötigten Tische baut und sie richtig kombiniert.Entschlüsselungsdatenbank ER-Diagramm für den Fragebogen

Das fragliche ER-Diagramm ist für einen Online-Fragebogen, bei dem jede Frage auf der Antwort basiert, die für die vorhergehende gegeben wurde, was schließlich zu einer Lösung/einem Ende führt.

Jede Frage kann mehrere Antworten haben und die gleiche Frage kann mehrere verschiedene Antworten haben, abhängig von den vorhergehenden Antworten.

Die Kombinationstabelle zeigt, welche Antworten zu welcher Frage gehören und was die nächste Frage sein sollte, wenn eine spezifische Antwort gegeben wird, die schließlich zu einer Lösung führt.

Das ER-Diagramm sieht wie folgt aus:

enter image description here

Was ich nicht verstehe:

Die Lösung/Frage Tabelle beide Fragen und Lösungen halten, die verschiedenen Einheiten haben kann, aber ich verstehst du nicht wie das gemacht wird? Und was ist das d?

Die führt zu ist eine Verknüpfungstabelle, weil es zwischen Antwort auf viele Verbindungs ​​viele ist und Frage/Lösung, aber warum? Sind sie nicht in der Kombination Tabelle verbunden? - Enthält diese Tabelle nicht alle Informationen, die benötigt werden, um zu wissen, welche Antworten mit welcher Frage verbunden sind und welche Frage als nächstes auftaucht, wenn eine spezifische Antwort gewählt wird?

Ich habe es sehr schwer herauszufinden, wie man diese Datenbank erstellt, damit es wie gewünscht funktioniert.

Antwort

5

Ihr Diagramm ist kein korrektes ER-Diagramm. Insbesondere scheinen die Ovale mit "Spezifische Lösungseinheiten hier" und "Spezifische Frageeinheiten hier" keine Attribute von Solution und Question anzuzeigen. Das bedeutet Question, Solution und Question/Solution haben keine Attribute. Außerdem hat die Combination Entität Answer ID und Question/Solution ID als Attribute, anstatt sich auf die relevanten Entitäten zu beziehen.

Lassen Sie uns schnell die Elemente eines ER-Diagramms überprüfen.

  • Rechtecke zeigen Objekte an, Ovale zeigen Attribute an.
  • Eine unterstrichene ovale Beschriftung zeigt an, dass ein Attribut Teil des Primärschlüssels ist, der die Entität identifiziert.
  • Diamanten zeigen Beziehungen an.
  • Beziehungen werden durch die Schlüsselattribute der Entitäten identifiziert, auf die sie sich beziehen.
  • Beziehungen können auch Attribute haben.
  • Ein Kreis, der d oder o enthält, weist auf eine disjunkte oder überlappende Subtyprelation hin.

Basierend auf Ihren Anforderungen, kam ich mit den folgenden funktionellen und mehrwertigen Abhängigkeiten bis:

  • QuestionID -> QuestionText
  • answerID -> Antworttext
  • answerID -> QuestionID (Mögliche Antworten)
  • DecisionID -> QuestionID
  • DecisionID - >> AntwortID (Verfügbare Antworten)
  • DecisionID, answerID -> NextDecisionID

Auf dieser Grundlage schlage ich folgendes ER-Diagramm:

Decision tree ER diagram

zu einem tabellarischen Modell übersetzt (I denormalized Beziehungen mit derselben Determinante, weshalb es gibt keine Tabelle für PossibleAnswers und DecisionQuestion):

Decision tree database diagram

Auf diese Weise können Sie eine beliebige Anzahl von Fragepfaden mit einer Reihe verfügbarer Antworten für jede Entscheidung beschreiben, die sich auf die nächste bezieht. Lösungen werden nicht explizit modelliert, sondern eine AvailableAnswer ohne NextDecisionID zeigt eine Lösung an.

+0

Das ist wahnsinnig brilliant und ich danke dir von ganzem Herzen für die Arbeit und dachte, du hättest das hier reingesteckt. Vielen Dank! Ich habe jedoch 2 Fragen, wie unterscheiden Sie verfügbare Antworten und mögliche Antworten genau? Und würde das nicht bedeuten, dass eine Frage nur einmal verwendet werden kann? Und wenn ja, gäbe es einen Weg, dies leicht zu ändern, so dass Fragen mehr als einmal verwendet werden können? Ich habe nicht gesagt, dass es möglich sein sollte, sie mehr als einmal zu benutzen, ich stelle nur sicher. – user2304993

+1

Alle möglichen Antworten für eine Frage werden in der Answers-Tabelle dargestellt, während die AvailableAnswers- Tabelle die zulässigen Antworten an jedem Entscheidungspunkt enthält. Sie können Fragen an verschiedenen Entscheidungspunkten beliebig oft wiederholen. Sie könnten sogar kreisförmige Pfade von Fragen erstellen. – reaanb

+0

Ich gehe noch einmal durch Ihre Lösung und bin immer noch erstaunt. Ich habe allerdings noch eine Frage. In Ihrer tabellarischen Darstellung der Datenbank haben Sie QuestionID als Fremdschlüssel in der Answers-Tabelle. Würde dies die Antworten nicht auf eine einzige Frage beschränken? Und deshalb normalisieren Sie den Tisch, sollte ich die gleiche Antwort haben wollen, in zwei verschiedenen Fragen? Ich könnte leicht etwas falsch verstanden haben, und ich wäre sehr dankbar, wenn Sie es erklären würden. Vielen Dank im Voraus. – user2304993

Verwandte Themen