Switch to full style
Ein gutes Datenbankdesign ist Pflicht! Doch wie geht man an die Datenmodellierung heran?
Hier treffen Datenbankdesign und Datenmodellierung aufeinander...
Thema gesperrt

Fragebogen -> Datenbank-Modellierung

Mo 28. Dez 2015, 15:33

Hallo,

ich erstelle gerade eine Datenbank für einen Fragebogen einer Evaluierung.
Ich habe dabei folgende Tabellen:

1. Lehrveranstaltung (ID, Nummer, Name, Typ_ID)
2. Lehrveranstaltung_Typ (ID, Name)
3. Professor (ID, Name)
4. Professor_has_Lehrveranstaltung (Professor_ID, Lehrveranstaltung_ID) -> n-m-Beziehung zwischen 1. und 3.
5. Frage (ID, Typ, Titel, Text_Frage)
6. Antwort (Antwort_ID, Frage_ID, Professor_ID, Lehrveranstaltung_ID, Text) -> n-m-Beziehung zwischen 4. und 5.

Zwischen 1. und 2. besteht außerdem eine n-1-Beziehung.

Zuerst mal: Ist der Entwurf so in Ordnung oder muss da noch etwas verändert werden?
Wie füge ich am besten eine zeitliche Komponente ein? Also dass man nur die Antworten eines bestimmten Semesters auflisten kann.

Danke schonmal
jacomo
Zuletzt geändert von jacomo am Di 29. Dez 2015, 14:00, insgesamt 1-mal geändert.

Re: Fragebogen -> Datenbank-Modellierung

Di 29. Dez 2015, 09:05

Moin moin,

im Anhang haste mal deinen Textentwurf etwas visuell dargestellt :)

An sich sieht es erstmal ok aus....fürs erste.

1.) Könntest du bitte noch erläutern warum genau zwischen tabelle1 und tabelle2 eine n-1 Beziehung besteht?!

2.) Du schreibst das zwischen 4 und 5 eine n-m Beziehung besteht?! Warum? Klar, 1 Frage kann N-Antworten haben usw. es kommt drauf an wie die Daten, in dem Fall die Fragen, aussehen.

3.) Auf was für ein System soll das ganze aufgesetzt werden?

So genug gefragt sollte reichen um das Thema ins rollen zu bringen :)

Grüße
Dateianhänge
Unbenannt.jpg

Re: Fragebogen -> Datenbank-Modellierung

Di 29. Dez 2015, 14:00

Vielen Dank für deine Antwort!

chuky666 hat geschrieben:1.) Könntest du bitte noch erläutern warum genau zwischen tabelle1 und tabelle2 eine n-1 Beziehung besteht?!


Jede Lehrveranstaltung besitzt einen Typ, ein Typ kann aber mehreren Lehrveranstaltungen zugewiesen werden.

chuky666 hat geschrieben:2.) Du schreibst das zwischen 4 und 5 eine n-m Beziehung besteht?! Warum? Klar, 1 Frage kann N-Antworten haben usw. es kommt drauf an wie die Daten, in dem Fall die Fragen, aussehen.


Zu jeder Kombination LV-Prof gibt es N Fragen, aber jede Frage kann auch zu N Kombinationen LV-Prof beantwortet werden.
(Wobei mir hier gerade auffällt, dass die Antwort_ID als PK in Antwort fehlt...)

chuky666 hat geschrieben:3.) Auf was für ein System soll das ganze aufgesetzt werden?


Als Webapp mit Java Spring und MySQL.

Danke nochmal
jacomo

Re: Fragebogen -> Datenbank-Modellierung

Di 29. Dez 2015, 14:14

mhh... beim ersten haste natürlich recht :D

Könntest du zu dem Frage/Antwort Fall mal 1-2 Beispiele bringen. Ich glaube dann wird es für alle etwas klarer :mrgreen:

Re: Fragebogen -> Datenbank-Modellierung

Di 29. Dez 2015, 15:07

chuky666 hat geschrieben:mhh... beim ersten haste natürlich recht :D

Könntest du zu dem Frage/Antwort Fall mal 1-2 Beispiele bringen. Ich glaube dann wird es für alle etwas klarer :mrgreen:


Wird gemacht:
Jede Antwort wird in einer Zeile abgespeichert. Wichtig ist dabei, dass sowohl die ID der Frage als auch auch die IDs von Lehrveranstaltung und Professor mitgespeichert werden, damit diese bei der späteren Auswertung eindeutig identifiziert werden können.
Also wenn man z.B. Frage 5 von Lehrveranstaltung a bei Professor b auswerten will, muss man dann eben alle Zeilen anzeigen lassen, wo Frage_ID=5, Lehrveranstaltung_ID=a und Professor_ID=b ist.
Jetzt verstanden? :D

Re: Fragebogen -> Datenbank-Modellierung

Mi 30. Dez 2015, 08:44

Moin moin :)

sehr schön du hast dir mehr Gedanken drüber gemacht :)

Na dann ran ans modellieren ;-)

Es gibt dafür diverse Tools um es visuell darzustellen. Ich benutze dafür meistens "DbSchema" oder direkt das Management Studio vom SQL Server.

Poste mal deine Modelle bin gespannt :)

Grüße 8-)

Re: Fragebogen -> Datenbank-Modellierung

Do 31. Dez 2015, 16:15

Eine Frage hätte ich noch:

Gibt es Probleme, wenn ich z.B. bei Professor_hat_Lehrveranstaltung eine neue ID einführe und die als PK verwende? Damit wäre das leichter in Java & Co zu benutzen. Was wäre in dem Fall der PK? Die ID alleine oder die ID zusammen mit den Fremdschlüsseln?

Re: Fragebogen -> Datenbank-Modellierung

Mi 6. Jan 2016, 09:49

Du kannst eine neue ID vergeben => wäre dann ein künstlicher Primärschlüssel, der eindeutig ist.
Es geht aber auch eine Kombi aus den beiden anderen Werten.

Ich bevorzuge aber immer einer künstlichen Schlüssel...

Warum benutzt Du keinen OR-Mapper, wenn Du mit Java implementierst?

Re: Fragebogen -> Datenbank-Modellierung

Mi 6. Jan 2016, 21:04

SQLUnion hat geschrieben:Du kannst eine neue ID vergeben => wäre dann ein künstlicher Primärschlüssel, der eindeutig ist.
Es geht aber auch eine Kombi aus den beiden anderen Werten.

Ich bevorzuge aber immer einer künstlichen Schlüssel...

Warum benutzt Du keinen OR-Mapper, wenn Du mit Java implementierst?


Achso, habe immer gedacht, dass man das vermeiden sollte :)

Ich verwende Hibernate dazu, aber trotzdem ist es leichter mit einer ID zu arbeiten, als mit einem zusammengesetzten Schlüssel aus zwei anderen Tabellen.

Danke für die Antwort!
Thema gesperrt