149 Stimmen

Datenbankentwurf für eine Umfrage

Ich muss eine Umfrage erstellen, deren Antworten in einer Datenbank gespeichert werden. Ich frage mich nur, wie ich dies am besten in der Datenbank implementieren kann, insbesondere die erforderlichen Tabellen. Die Umfrage enthält verschiedene Arten von Fragen. Zum Beispiel: Textfelder für Kommentare, Multiple-Choice-Fragen und möglicherweise Fragen, die mehr als eine Antwort enthalten können (z. B. alles ankreuzen, was zutrifft).

Ich habe mir zwei mögliche Lösungen einfallen lassen:

  1. Erstellen Sie eine riesige Tabelle, die Folgendes enthält die Antworten für jede Umfrage Eingabe enthält. Jede Spalte würde entspricht einer Antwort aus der Umfrage entsprechen, z. B. SurveyID, Answer1, Antwort2, Antwort3

    Ich glaube nicht, dass dies der beste Weg ist. da es eine Menge Fragen gibt in dieser Umfrage und scheint nicht sehr flexibel, wenn sich die Umfrage ändern soll.

  2. Die andere Sache, an die ich dachte, war eine Tabelle mit Fragen und Antworten Tabelle. Die Fragetabelle würde enthält alle Fragen für die Umfrage enthalten. Die Antworttabelle enthält einzelne Antworten aus der Umfrage, wobei jede Zeile mit einer Frage verknüpft ist.

    Ein einfaches Beispiel:

    tblSurvey : UmfrageID

    tblFrage : QuestionID, UmfrageID , QuestionType, Frage

    tblAntwort : AntwortID, Benutzer-ID , FrageID , Antwort

    tblBenutzer : BenutzerID, Benutzernamen

    Mein Problem dabei ist, dass es Tonnen von Antworten geben könnte, was die die Antworttabelle ziemlich groß wird. Ich bin nicht sicher, ob das so toll ist, wenn es die Leistung angeht.

Ich würde mich über jede Idee und jeden Vorschlag freuen.

0 Stimmen

Wie viel ist "ziemlich viel"? Geben Sie uns eine Schätzung, sprechen wir von einer Million oder von tausend Millionen?

1 Stimmen

SQL-Server sind eigentlich für die Arbeit mit "Tonnen" von Daten konzipiert. Sie sollten keine großen Probleme haben, mit dem von Ihnen erwähnten Schema zu arbeiten.

0voto

Jorge Córdoba Punkte 49057

Mit dem richtigen Index ist Ihre zweite Lösung normalisiert und für ein traditionelles relationales Datenbanksystem geeignet.

Ich weiß nicht, wie groß der Umfang ist, aber er sollte problemlos ein paar Millionen Antworten enthalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X