Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Fragebogen mit offenen und halboffenen Fragen - Tabellenentwurf?

Begonnen von Dreamer, Oktober 01, 2011, 14:28:34

⏪ vorheriges - nächstes ⏩

Dreamer

Ich hab jetzt nochmal das Datenbankdesign neu erstellt, sprich ich hab das Blatt mit dem ich bisher gearbeitet habe einfach mal weggeworfen und ganz von vorne begonnen. Fürs DB-Design verwende ich ein ERM.

Bis zu der Tabelle "Fragen" komm ich da ganz gut durch und bin mir auch sicher, dass da keine gravierenden Fehler drin sind (ich will aber Fehler nicht ausschließen ;)).

Jetzt kommt aber wieder mein "Antworten" Problem.

Ich hab ja zwei Arten von Fragen. Dieser unterscheide ich in der Tabelle "Fragen" durch das Feld "Frageart Referenz", das eine Beziehung zur Tabelle "Fragenarten" hat. Die Art der Antwort hängt ja jetzt sowohl von der Frage an sich ab und um welche Frage es sich handel:


  • Bei einer offenen Frage, besteht die Antwort aus einem frei zu formulierenden Text ODER einer Zahl, des Weiteren gibt es Feld in dem die zu vergebenden Punkte drin stehen.
  • Bei einer halboffenen Frage, soll ich bei der Antwort aus vorgegebenen Antwortmöglichkeiten, mehrere Auswählen können (oder halt nur eine, aber es besteht immer die Möglichkeit mehrere auszuwählen). Bei den Antwortmöglichkeiten, sind die jeweiligen zu vergebdenen Punkte schon vorher festgelegt, sie sind sozusagen Konstant (vergleichbar mit der Gewichtung einer Frage). Da es sich aber um eine halboffene Frage handelt gibt es hier die Möglichkeit eine Antwortmöglichkeit frei zu formulieren, bei der ich dann auch die Punkte selbst eintragen kann

Und hier liegt mein Hauptproblem. Ich weiss nicht wie ich dies abbilden kann.

In dem Zusammenhang stellt sich mir dann auch die Frage wie ich die "Notizen" zu eine Frage abbilde. Hier spielt es ja keine Rolle, um welche Frageart es sich handelt. Denn zu jeder Frage gibt es ein Notizfeld, in dem beim Ausfüllen des Fragebogens, Notizen [Memo-Feld] eingetragen werden können, die nicht direkt zur Beantwortung der Frage dienen, aber trotzdem von Interesse sein könnten. Diese soll denn in das Notizfeld eingetragen werden.

Zur Veranschaulichung hab ich hier mein ERM als Bilddatei. Die "Antworten" und "Notizen" sind noch nicht darin enthalten, da ich ja nicht weiß, wie.


(Sorry, dass die Bilddatei bei einem Hoster und nicht hier hochgeladen wurde, aber die Datei hat mehr als 200kb)

Auch hier bin ich wie immer sehr dankbar um Hilfestellungen.

Dreamer

Hallo,

in dem ERM hab ich gerade einen Fehler entdeckt. Und zwar ist die Beziehung "Kontaktpersonen" -> "Firmen" eine n:1 Beziehung und keine m:n-Beziehung, wie in dem Bild dargestellt. Ausserdem fehlt in der Tabelle "Kontaktpersonen" eine Refernzfeld auf die Tabelle "Firmen".

DF6GL

#17
Hallo,

1)

Nix "oder"  . Zwei Felder, einer für den Text, eines für numerische Werte.
Es muss ein Tabellenfeld (in der Antwort-Tabelle (tblFBE)) geben, in das die "schriftliche" Antwort eingetragen werden kann (bei mir das Memofeld). Die zu vergebenden Punkte (Bewertung) würde ich in einer weiteren Nachschlagetabelle hinterlegen und für spätere Auswertungen heranziehen.


2)
Wie schon gesagt, hab ich das so gelöst, dass in einem Zahl-Feld (FBE_Item) eine den "durchnumerierten" (mit fortlaufender Zahl bezifferten) Auswahlpunkten entsprechender Wert (durch eine Berechnung/Funktion)eingetragen wird. Bei Single-choise die 2-er Potenz der Auswahlnummer, bei Multi-Choise die Summe der 2-er Potenzen der ausgewählten Punkte:
Auswahl 3: 2^3=8
Auswahl 1 und 3:  2^1 + 2^3=9

Spätere Auswertungen/Bewertungen "dekodieren" diese gespeicherten Zahlen anhand der Auswahlmöglichkeits-Definition (Feld FB_kombinatorisch) dieser Frage wieder.



Die "Antwortmöglichkeiten" werden bei der Erstellung einer Fragestruktur insofern angegeben, als dass die jeweilige Antwortanzahl einer Frage für jede Frage festgelegt wird.


Bewertungspunkte werden nirgends selber eingetragen, das Eintragen der Antworten beschränkt sich auf das ein-oder mehrfache Anklicken der Auswahl-(Options oder Kontrollkästchen) Felder und das Ausfüllen des Memofeldes im entspr. aufgebauten Formular.

" wie ich die "Notizen" zu eine Frage abbilde"

na, einfach ein Textfeld in der Tabelle einbauen (und später im Formular natürlich anzeigen, siehe "Memo-Feld", Kann ja auch ein normales Textfeld sein, wenn 255 Zeichen ausreichen.)


btw: In Tabellen stehen nur Werte.  Die passende Daten-Eingabeform (Anklicken von Optionsfeldern für die Multi/Single-Choise-Auswahl, und/oder Texteingabe in normale Textfelder/Memofelder) wird mittels FORMUALRE realisiert.

Dreamer

#18
Hallo nochmal,

ich hab glaube ich eine Lösung für mein Problem. Bin mir nur unsicher ob es funktioniert (muss es noch mit Daten testen), aber vor allem bin ich mir unsicher, ob das korrekt ist. Anbei der "entscheidene" Ausschnitt aus meinem Modell.

tblKategorien:
  • hier stehen die verschiedenen Kategorien drin

tblFragentypen:
  • hier stehen die verschiedenen Fragentypen drin (offen, halboffen und geschlossen)

tblFragen:

  • hier steht die Fragen drin
  • Mit der Referenz zur tblKategorie leg ich fest, zu welcher Kategorie die Frage gehört
  • Mit der Referenz zur tblFragentypen, leg ich fest um welchen Fragentyp es sich bei der Frage handelt.
                 
tblAnworten:

  • in der tblAntworten stehen meine Vorabantworten drin (auf meine Fragen soll es eine Vorabantwort
  • die immer frei formuliert wird) geben und eine eigentliche Antwort

tblAntwortmöglichkeiten:

  • enthält die Antwortmöglichkeiten für die geschlossenen bzw, halboffenen Antworten
  • durch die Referenz zur tblFragen leg ich fest, zu welche Frage die Antwortmöglichkeit gehört




Viele Grüße,

[Anhang gelöscht durch Administrator]

Dreamer

Kurze, aber wichtig Anmekung zu meinem Lösungsvorschlag.

Mir ist selbst aufgefallen, dass da noch ein böser Fehler drin ist, denn ich darf keine "Kreisbeziehung" bilden. Hab auch schon ne Lösungsidee hierfür, aber die kann ich aus Zeitgründen erst gegen Abend mal posten.

Dreamer

Hallo,

ich wollte nochmale meinen neustens Lösungsversuch zur Diskussion stellen. Nachdem ich zwischenzeitlich der Meinung war, ein richtiges Datenbankmodell entwickelt zu haben, um dann festzustellen, dass dies doch nicht so ist, bin ich nun total verwirrt, verzeifelt und übermüdet.

Hier nun der letzte Stand meiner Lösung, bei der mir bis jetzt kein Fehler aufgefallen ist, nur probiet hab ich noch nicht, ob das so passt.

Hier mal das dazugehörige ERM (in Access muss ich es noch umsetzen).



Nochmals Danke für Eure Geduld und (weitere) Hilfe/Tipps/Kommentar.

Gruß

Dreamer

Ich hab mitlerweilde mein Datenbankmodell erstellt. Ob es von der Datenbanktheorie her perfekt ist weiß ich nicht, aber es ist praktikabel und handhabbar.

Jetzt gehts also an die konkrete Realisierung.

(Und da gibt es gleich ne Frage in einem extrea Thread, weil die hier nicht hinpasst)

Nochmal an alle, die mir hier geantwortet und somit weitergeholfen haben.

Gruß

Dreamer

Hallo nochmals,

nachdem ich gedacht hatte ich hätte eine Lösung, dank Eurer Hilfe, bin ich jetzt beim erstellen von Abfragen und Formularen stutzig geworden und wollte dann hier doch nochmal nach Hilfe fragen.

Wobei es jetzt nicht mehr um die Unterscheidung in offene, geschlossene Fragen usw. geht. Eigentlich ist es fast ein grundlegendes Problem zu dier Thematik (die hätt ich mal vor allem anderen lösen sollen ich weiß)

Ich hab eine Tabelle Persone, in der ich alle Personen erfasse, die ich befrage. Es handelt sich dabei nicht um eine anonyme Umfrage, sondern ich muss die Antworten den Personen zuordnen können.
  -> tblPersonen (perID; perName;)

Ich möchte alle Personen die gleichen Fragen stellen, daher habe ich eine Tabelle Fragen (sozusagen einen Fragenkatalog), der alle Fragen (und deren Nummer) enthält.
  -> tblFragen(fraID;frage)

Nun wollte ich alle Antworten in einer Tabelle Antworten speichern. Hier hab ich dann jeweiles eine Referenz auf die tblPersonen und eine auf die Fragen und speicher die gegebene Antwort ab.
  -> tblAntworten(antID;antperRef;antfraRef;antWort)

Die Beziehung zwischen den Tabellen würde wie folgt aussehen: tblPersonen 1:N tblAntworten N:1 tblFragen

Ich hab mir überlegt, dass ich so ja jeder Antwort die entsprechende Frage und Person zuordnen kann. Ich muss aber die Fragen auch nur einmal in der tblFragen erfassen und kann sie dann jeder Person stellen.

Ist dieser Gedankengang denn richtig?

Zuerst hatte ich folgende Überlegung, die ich verworfen hatte und jetzt wieder drüber nachdenke: tblPersonen 1:N Fragen 1:N Antworten, aber da müsste ich doch die Fragen jeweils neu eingeben für jede Person, oder? (die Referenzen wären dann natürlich entsprechend und nicht mehr wie oben dargestellt).

Von der Überlegung (auch auf Papier) halte ich die erste Lösung für richtig, aber ich scheitere daran, ein gescheites Formular zu bauen, das dem Fragebogen entspricht. Auf dem Formular sollte oben die Person einmal stehen, die den Bogen ausfüllt (Ein Wert aus der tblPersonen), alle Fragen aus der tblFragen und ein Antwortfeld (tblAntworten) das mit der Antwort befüllt wir, die die Person auf die Frage gibt bzw, wenn Sie schon eine Antwort gegeben hat, dass man diese da sehen kann.

Mit welcher der beiden oben genannten Versionen komm ich denn eher an mein Ziel? Oder muss ich das ganze ganz anders aufbauen?

WIe immer bin ich sehr dankbar für Ratschläge, Tipps, Hilfestellungen die mir bei meiner Problemlösung helfen.

Gruß