Database
 sql >> Datenbank >  >> RDS >> Database

Ein Datenbankmodell für eine Online-Umfrage. Teil 1

Ich muss das Design für eine neue Datenbank erstellen, die die Datenschicht sein wird für eine Bewerbung; die Anwendung wird eine Online-Umfrage sein oder Umfragen wie Survey Monkey. Meine Herausforderung besteht darin, dass die Funktionalität, die ich benötige, von bestehenden Umfrageseiten nicht unterstützt wird, also muss ich meine eigene erstellen. Was ich brauche, ist eine bedingte Umfrage (wenn die Antwort auf Frage 4 „ja“ ist, dann stellen wir Frage 5 und überspringen Frage 6; aber wenn die Antwort auf Frage 4 „nein“ ist, dann überspringen wir Frage 5 und stellen Frage 6 ).

Ich werde eine Reihe von Artikeln über dieses Design schreiben und das Design jedes Mal erweitern, daher geht es in diesem Artikel hauptsächlich darum, die Basis für die grundlegende Umfragedatenbank in Szene zu setzen. In zukünftigen Artikeln werde ich an den erweiterten Funktionen arbeiten im Zusammenhang mit einer bedingten Reihenfolge der Fragen in einer Umfrage und der Verwaltung der Umfragen.

Domäne

Die Domain für eine Online-Umfrage basiert auf einem Fragebogen oder einer Umfrage, die aus einer Reihe von Fragen besteht. Die Befragten nehmen an der Umfrage teil und wir müssen ihre Antworten speichern.

Im Moment beginnen wir mit offenen Fragen die aus einer Frage und einer Antwort bestehen.

In zukünftigen Versionen des Modells möchten wir die Reihenfolge der Fragen in der Umfrage definieren, ob die Fragen bedingt sind oder nicht, und die verschiedenen Arten von Fragen (z. B. Multiple-Choice).

Funktionalität

Wie bereits erwähnt, werden wir Befragte fragen um auf die Umfrage zu antworten (sie wird nicht für alle offen sein), und wir müssen ihre Antworten speichern. Darüber hinaus kann derselbe Teilnehmer zurückkehren und seine Antworten aktualisieren. Speichern von Antworten kann etwas herausfordernd sein, da wir Tabellen benötigen, die mit den ursprünglichen Fragen verknüpft sind, aber Antworten für jeden der Befragten enthalten, der die Umfrage ausfüllt.

In zukünftigen Versionen des Modells werden wir Administratoren der Online-Umfragen hinzufügen.

Schließlich müssen Berichte und Analysen erstellt werden:Wie waren die Antworten? Wie viele Antworten gingen von verschiedenen Untergruppen ein? Welche Fragen wurden am häufigsten nicht beantwortet (um schlecht formulierte Fragen zu identifizieren)?

Entitäten und Beziehungen

Mal sehen:Wir haben eine Umfrage (oder einen Fragebogen), die aus einer Reihe von Fragen besteht. Im Moment beginnen wir nur mit offenen Fragen, sodass keine Antwortmöglichkeiten erforderlich sind, die mit der Frage verknüpft sind, wie dies bei Multiple-Choice-Fragen erforderlich wäre. Die Reihenfolge der Fragen in der Umfrage wird festgelegt (definiert, wenn die Umfrage erstellt wird), aber in zukünftigen Versionen des Modells möchten wir die Option für einen bedingten Pfad durch die Umfrage hinzufügen.

Natürlich brauchen wir die Befragten und ihre Antworten. Wie bereits erwähnt, werden wir in zukünftigen Versionen des Modells eine Benutzerverwaltung hinzufügen.

Formales Design

Jetzt, da wir die Entitäten und Beziehungen kennen, können wir unser Entity Relationship Diagram (ERD) erstellen. Dazu verwenden wir Vertabelo , ein Online-Tool zur Datenbankmodellierung. Wenn Sie noch kein Vertabelo-Konto haben, können Sie sich hier für einen kostenlosen Testplan anmelden.

Bei unserer Online-Umfrage beginnen wir mit der Umfrage, den zugehörigen Fragen und der Reihenfolge, in der die Fragen angezeigt werden. Wir fügen die Befragten hinzu und verknüpfen dann die Umfragen, auf die ein Befragter Antworten gegeben hat, und ihre Antworten für eine Umfrage.




Lassen Sie uns das zunächst als Grundlage verwenden und in zukünftigen Versionen des Modells weitere Komplexität hinzufügen.

Schlussfolgerung

Nachdem unser grundlegendes Design definiert ist, können wir jetzt anfangen, über Verbesserungen nachzudenken. In zukünftigen Artikeln werde ich an fortgeschritteneren Funktionen arbeiten, wie zum Beispiel:

  • Verschiedene Arten von Fragen wie Multiple-Choice-Fragen
  • Bedingte Reihenfolge der Fragen in einer Umfrage
  • Verwaltung der Umfragen.