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!