2017-08-01 6 views
0

Ich entwerfe eine Datenbank zum Speichern von Vermessungsinstrumenten. Jede Umfrage enthält eine Reihe von Fragen, die wiederum mit Übersetzungen in verschiedene Sprachen verbunden sind.Wie sieht mein Datenbankmodell aus?

Hier ist, was ich bisher (PKs kursiv) haben:

  • tblInstrument: InstrumentID, Name, Start, Ende
  • tblInstrumentQuestions: InstrumentID, QuestionID, FormID
  • tblQuestion: QuestionID, Prompt, Typ, Recode
  • tblDimensionLabels: DimensionID, QuestionID (FK), Optionen, Column
  • tblTranslation: TranslationID, QuestionID (FK), Prompt
  • tblTranslationDimLabels: TransDimID, TranslationID (FK), Optionen, Spaltennamen

Lassen Sie mich erklären, was ich hier erreichen möchte. Wir haben eine Viele-zu-Viele-Verbindung zwischen Instrumenten und Fragen, also habe ich eine Bridge-Tabelle tblInstrumentQuestions erstellt, die sich damit beschäftigt. In dieser Tabelle ist FormID der Name des Eingabeelements im Quellcode für das Instrument, das online gehostet wird. Da dies eine Brücke zwischen tblInstrument und tblQuestion ist, ist der Primärschlüssel für die Brücke die Kombination der Schlüssel dieser Tabellen.

Jede Frage enthält eine Eingabeaufforderung, einen Typ und einen Recode (einen Code für das Binning in Histogrammen). Da die meisten Fragen mehrere Antwortmöglichkeiten haben und manche matrixartig sein können, weil sie Beschriftungen in Zeilen und Spalten haben, haben wir eine andere Tabelle tblDimensionLabels, die es uns ermöglicht, die Optionen und Spaltennamen für eine bestimmte Frage nachzuschlagen. Diese Tabelle enthält QuestionID als Fremdschlüssel für diese Suche.

Schließlich haben wir für jede Frage Übersetzungen in verschiedene Sprachen. Die tblTranslation Tabelle enthält die QuestionID als Fremdschlüssel und hat ein Kind Tisch tblTranslationDimLabels die für tblTranslation als tblDimensionLabels tut für tblQuestion dem gleichen Zweck dient.

Ich bin ein totaler Neuling für Datenbank-Design, so dass jedes Feedback willkommen ist!

Antwort

2

Ich denke, Sie sind gut in der Gestaltung der Datenbank und durchdenken, aber ich würde vorschlagen, einige Database Design Tool, die Ihnen helfen können, die fehlenden Verbindungen und richtig/visuell denken zu finden.

Überprüfen Sie diese link, die Datenbankmodell Ihrer Frage ist, wie unten gezeigt, um Ihr DB-Modell zu erstellen, habe ich eine meiner Lieblings-DB-Design-Tools namens [SqlDBM]: http://sqldbm.com/. Es ist kostenlos zu verwenden und erfordert sehr wenig, um loszulegen.

enter image description here

Verwandte Themen