Abgeteilt von WPF - dynamische Formulare?
Hallo, da ich jetzt vor dem selben (meiner Meinung nach hier noch ungelösten) Problem wie der TE stehe mache ich dieses alte Thema noch mal auf.
Folgende Aufgabenstellung:
Ich möchte ein Tool schreiben welches es einem internen Sachkundigen ermöglicht einen Fragenkatalog zu erstellen, sowie die Bedingungen und die jeweiligen Folgefragen anzugeben. Dazu benötige ich ja zuerst das Modell (Tabellen) für die Speicherung der Daten in der Datenbank.
Die erstellten Fragen werden dann zwar auf einer Webseite von Usern beantwortet aber das ist meiner Meinung nach erst mal egal, da die Erstellung des Kataloges völlig generisch erfolgen soll (also ohne zu wissen welche Anzahl/Art/Tiefe von Fragen). Wichtig wäre mir erst mal Ansätze für das Datenmodell zu bekommen.
Kann mir da da jemand ein paar Tips geben, evtl auch der TE?
Um Rekursion zu verstehen, muss man erst mal Rekursion verstehen, muss man erst mal Rekursion verstehen, ....
Klingt nach folgendem Muster:
Frage, Antwort
Unterfrage, Antwort,
Unterunterfrage, Antwort
Dies lässt sich durch Rekursion lösen.
Dazu benötigt jede Frage eine Referenz auf die überliegende Frage.
Somit hat die Hauptfrage eine leere Guid als Referenz.
Die darunter liegende hat als Referenz eine Guid Referenz auf die Haupfrage.
Und so weiter.
Somit wäre der einfache Aufbau der Tabelle folgender.
Guid,
Frage,
Antwort,
RefGuid
Wenn es so stimmt, musst du natürlich auch rekursiv Programmieren.
Erst einmal alle Hauptfragen einladen.
Dann zu jeder Hauptfrage die Unterfragen suchen und dann das selbe für alle Unterabfragen bis es keine mehr gibt.
Stimmt auch der Gedanke dahinter oder sieht die Struktur anders aus?
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Mach ne Liste mit Referenzen, auf andere Fragen, an jede Frage.
Das natürlich zusätzlich.
Somit hat jedes Fragenobjekt eine Liste von Fragen(Unterfragen).
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
nur als Anmerkung. kann es nicht auch zu speziellen antworten unterschiedliche weiterführende fragen geben? sollte das nicht gleich mit bedacht werden oder fällt das von vornherein weg?
MfG Paul
Hallo wackelkontakt,
du könntest auch zu jeder Frage eine Liste von Fragen speichern, die als Bedingung beantwortet bzw. speziell beantwortet sein müssen.
Somit hätte also z.B. jede Frage und jede Antwort eine ID und du könntest zu jeder Frage eine Liste von IDs (evtl. mit UND bzw. ODER verknüpft) speichern, die zutreffen müssen, damit die Frage angezeigt wird.
Vorteil ist, dass du die Bedingungen IMHO etwas natürlicher formulieren kannst.
Was spricht zB gegen folgendes naives Datenmodell :
MainQues{
ID
Question}
SubQuest{
ID
Question
FK_MainQues
Order}
Answer{
ID
Answer
FK_MainQues}
SubAnswer{
ID
Answer
FK_SubQUest}
So : Eine MainQues hat x Subquest. Durch das Datenfeld Order erhälst du eine BEnatwortungsreihenfolge. DIe Beiden Tabellen für die Antworten verweisen auf die jeweiligen Fragen.
Is nur ne Fixe Idee aus dem Zug 😉
EDIT : Du könntest das Model dahingehen erweitern , dass die Answer eine nachfolgende Frage vorgibt, also ein weiteres Feld in den Answers
Grüße
Hallo wackelkontakt
Ich habe etwas ähnliches vor ungefähr einem Jahr programmiert. (Hierachische Gliederung von Zugriffsberechtigungen)
Ich bin dabei genau so vorgegangen wie es T-Virus erklärt hat. Mithilfe von Rekursion hat sich das Problem wunderbar lösen lassen.