TestTool/Datenmodell: Unterschied zwischen den Versionen

Aus Foxwiki
Die Seite wurde neu angelegt: „Das Datenmodell bildet die Grundlage für das Erstellen des testTools. ==Datenlogik== *Jede Frage hat eine oder mehrere Antworten, eine Antwort ist einer Fra…“
 
K Dirkwagner verschob die Seite TestTool:Datenmodell nach TestTool/Datenmodell, ohne dabei eine Weiterleitung anzulegen: Textersetzung - „:“ durch „/“
 
(23 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das Datenmodell bildet die Grundlage für das Erstellen des testTools.
Das Datenmodell bildet die Grundlage für das Erstellen des testTools.


==Datenlogik==
= Datenbanklogik =
Die Datenbanklogik erklärt, wie testTool Daten in der Datenbank dargestellt werden.


*Jede Frage hat eine oder mehrere Antworten, eine Antwort ist einer Frage zugeordnet.
 
*Jede Frage hat eine Schwierigkeit, ist ein oder mehreren Themen und ist einer Lernwoche zugeordnet
== Aktueller Stand ==
*Jede Frage kommt in mehreren Prüfungen vor
 
*Jede Prüfung hat mehrere Fragen
[[Datei:TestTool designer 2021-01-25.png|1200px]]
*Jede Prüfung hat Teilnehmer, die wiederum in mehreren Prüfungen teilnehmen
 
=== Fragen (questions) ===
Beziehungen:
* Mehrere Fragen (questions) Können zu einem Thema (topic) gehören. Jedes Thema gehört zu einem Fachgebiet (subject).
* Mehrere Teilaufgaben (pairing, fill_in, multiple_choice) können zu einer Frage gehören. Nur Ausfüllfragen (fill_in) können mehrere Antworten (fill_in_answers) haben.
* Eine Frage ist im Besitz eines Benutzers (user) und wurde zuletzt von einem Benutzer geändert.
 
Begründungen:
* Die Reihenfolge der Teilaufgaben (pairing, fill_in, multiple_choice) muss irgendwie kontrolliert werden. Entweder man sortiert sie nach dem Inhalt (*_text) oder nach einer vorgegebenen Reihenfolge (*_position). Momentan ist es das Letztere der Beiden.
 
=== Benutzer (users) ===
 
Beziehungen:
* Mehrere Benutzer (Users) Können zu einer Gruppe (Group) gehören.
* Mehrere Benutzer Können eine Rolle (Role) haben.
* Ein Benutzer kann beliebig viele Fragen erstellen.
 
Erläuterungen:
* Gruppen(groups) sind ein Weg mehrere Benutzer (users) auf einmal zu kontrollieren.
* Rollen(roles) geben einen Benutzer Rechte.
 
== Noch erforderlich ==
 
=== Prüfungen (tests) ===
* Sollen Möglichkeit haben wiederholbar zu sein.
* Sollten Dauer und Zeitpunkt haben.
* Sollten von mehreren Gruppen durchführbar sein.
* Sollten Noten erstellen.
 
== Änderungspotential ==
* Benutzer(users) sollten zu mehreren Gruppen(groups) gehören.
* Wie die große Anzahl an Rechten einer Rolle (Role) aufgeteilt werden soll damit die Tabelle nicht unübersichtlich wird.
 
= PHP-Schnittstelle =
 
Die Datenbanktabellen werden durch Klassen dargestellt, die durch einer Fabrik-Klasse aus der Datenbank gelesen und erstellt werden.
 
So ungefähr läuft der Anmeldevorgang:
$db = new DB();
$user = $db->getUser($username);
if ($user->hasSameHash($password)) {
    // LOGGED IN
} else {
    // NOT LOGGED IN.
}
[[Kategorie:TestTool]]

Aktuelle Version vom 29. März 2023, 13:16 Uhr

Das Datenmodell bildet die Grundlage für das Erstellen des testTools.

Datenbanklogik

Die Datenbanklogik erklärt, wie testTool Daten in der Datenbank dargestellt werden.


Aktueller Stand

Fragen (questions)

Beziehungen:

  • Mehrere Fragen (questions) Können zu einem Thema (topic) gehören. Jedes Thema gehört zu einem Fachgebiet (subject).
  • Mehrere Teilaufgaben (pairing, fill_in, multiple_choice) können zu einer Frage gehören. Nur Ausfüllfragen (fill_in) können mehrere Antworten (fill_in_answers) haben.
  • Eine Frage ist im Besitz eines Benutzers (user) und wurde zuletzt von einem Benutzer geändert.

Begründungen:

  • Die Reihenfolge der Teilaufgaben (pairing, fill_in, multiple_choice) muss irgendwie kontrolliert werden. Entweder man sortiert sie nach dem Inhalt (*_text) oder nach einer vorgegebenen Reihenfolge (*_position). Momentan ist es das Letztere der Beiden.

Benutzer (users)

Beziehungen:

  • Mehrere Benutzer (Users) Können zu einer Gruppe (Group) gehören.
  • Mehrere Benutzer Können eine Rolle (Role) haben.
  • Ein Benutzer kann beliebig viele Fragen erstellen.

Erläuterungen:

  • Gruppen(groups) sind ein Weg mehrere Benutzer (users) auf einmal zu kontrollieren.
  • Rollen(roles) geben einen Benutzer Rechte.

Noch erforderlich

Prüfungen (tests)

  • Sollen Möglichkeit haben wiederholbar zu sein.
  • Sollten Dauer und Zeitpunkt haben.
  • Sollten von mehreren Gruppen durchführbar sein.
  • Sollten Noten erstellen.

Änderungspotential

  • Benutzer(users) sollten zu mehreren Gruppen(groups) gehören.
  • Wie die große Anzahl an Rechten einer Rolle (Role) aufgeteilt werden soll damit die Tabelle nicht unübersichtlich wird.

PHP-Schnittstelle

Die Datenbanktabellen werden durch Klassen dargestellt, die durch einer Fabrik-Klasse aus der Datenbank gelesen und erstellt werden.

So ungefähr läuft der Anmeldevorgang:

$db = new DB();
$user = $db->getUser($username);
if ($user->hasSameHash($password)) {
    // LOGGED IN
} else {
    // NOT LOGGED IN.
}