-
Notifications
You must be signed in to change notification settings - Fork 0
Die Server Datenbank
Die serverseitige Datenbank basiert auf einer SQL Datenbank. Sie besteht im Kern aus drei Tabellen. Jeweils eine um die Ausrüstungsgegenstände (equipment), die Gerätefächer (trays) und die Positionsbilder (positionimage) zu verwalten.
Jede Datenbank enthält min. eine Spalte "version". In dieser wird die Version des Eintrages hinterlegt. Der Vorteil an dieser Methode ist, dass durch die Serverskripte immer nur die Einträge an den Client ausgeliefert werden die dieser auch benötigt. Es kann also Traffic auf Server und Client Seite gespart werden.
Die leeren Datenbanken sind im .sql Format im Ordner server/tools in diesem Repo gespeichert. Sie können per Import schnell geladen werden.
Feld | Datentyp | Beschreibung |
---|---|---|
id | integer | Eindeutige Kennung des Nutzers |
categoryID | integer | In diesem Feld wird die ID des Gerätefachs hinterlegt, welchem der Gegenstand unterstellt ist. |
positionID | integer | Die PositionsID enthält eine Kennung welche zur Identifikation des Markierungsbereiches in der Detailansicht verwendet wird. Die zugehörigen Einträge sind im Trayeintrag hinterlegt. |
name | string | Der Name des Gegenstandes |
setName | string | Der Name des Ausstattungssatzes (Eintrag optional) |
description | string | Eine Beschreibung zum Gegenstand (Eintrag optional) |
position | string | Eine Beschreibung zur Position des Gegenstandes in Textform |
count | integer | Anzahl wie oft der Gegenstand vorhanden ist |
notes | string | Anmerkungen zum Gegenstandes bspw. Benutzungshinweise, Vorsichtsmaßnahmen etc. (Eintrag optional) |
keywords | string | Stichwörter welche in der Appinternen Suche verwendet werden |
version | integer | Diese Spalte kennzeichnet zu welcher Datenbankversion der Eintrag gehört |
Feld | Datentyp | Beschreibung |
---|---|---|
id | integer | Eindeutige Kennung des Nutzers |
name | string | Der Name des Gerätefachs |
description | string | Eine Beschreibung zum Gerätefach |
descriptionTwo | string | Dieser Eintrag wird momentan nicht verwendet! |
positions | string | Die verfügbaren Markierungspositionen |
version | integer | Diese Spalte kennzeichnet zu welcher Datenbankversion der Eintrag gehört |
Die Markierungspositionen werden nach folgendem Muster angelegt:
0:27-269-188-415
- 0 - stellt dabei die ID des Markierungsfeldes dar
- 27 - ist der Abstand zwischen linkem Bildrand und der linken Seite des Markierungsrechteck in Pixel
- 269 - ist der Abstand zwischen oberen Bildrand und der linken Seite des Markierungsrechteck in Pixel
- 188 - ist der Abstand zwischen linkem Bildrand und der rechten Seite des Markierungsrechteck in Pixel
- 415 - ist der Abstand zwischen oberen Bildrand und der unteren Seite des Markierungsrechteck in Pixel
Genauere Informationen zur Erstellung der Positionen gibt es hier:
Anleitung: Die Markierungspositionen erstellen
In dieser Tabelle werden Pfadangaben zu den Positionsbildern hinterlegt. Momentan ist vorgesehen die Bilder als .jpg zu hinterlegen. Es muss zu jedem Element der Tray Tabelle ein passendes Element in der PositionImage Tabelle existieren! Ein Bild muss aber nicht zwangsläufig hinterlegt werden (siehe Artikel Die Datenbank managen)
Feld | Datentyp | Beschreibung |
---|---|---|
id | integer | Eindeutige Kennung des Nutzers |
path | string | Der Ordnerpfad an dem das Bild hinterlegt ist |
categoryID | integer | Die ID des zugehörigen Gerätefaches |
version | integer | Diese Spalte kennzeichnet zu welcher Datenbankversion der Eintrag gehört |
In dieser Tabelle werden die verfügbaren Gruppen gespeichert. Da der Tabellenname group durch MySQL reserveriert ist, wird stattdessen als Tabellenname "groupx" verwendet.
Im Vergleich zu den anderen Tabellen ist die Gruppentabelle sehr simpel aufgebaut.
Feld | Datentyp | Beschreibung |
---|---|---|
id | integer | Eindeutige Kennung des Nutzers |
name | string | Namen der Gruppe. Wird durch den Client bei der Kommunikation mit dem Server verwendet. |
version | integer | Diese Spalte kennzeichnet zu welcher Datenbankversion der Eintrag gehört |
Die User-Tabelle enthält Benutzerdaten für die Verwendung der Daten-API. Momentan wird sie damit vor allem bei der Verwendung des ServerManagers benötigt.
Feld | Datentyp | Beschreibung |
---|---|---|
id | integer | Eindeutige Kennung des Nutzers |
name | string | Der Name des Benutzers. Dieser wird beim Einloggen verwendet. |
groups | string | Gruppen welche der Nutzer bearbeiten darf. Es werden die Gruppennamen mit dem Muster gruppenname1_gruppenname2_gruppenname3 verwendet (Trennzeichen "_"). Es kann auch die Gruppenid verwendet werden (0_1_2_3 ). Wenn der Benutzer Rechte für alle Gruppen erhalten soll, kann der Schlüssel all verwendet werden. |
tables | string | Tabellen welche der Nutzer bearbeiten darf. Es werden die Tabellennamen mit dem Muster tray_equipment_userx_groupx_positionimage verwendet (Trennzeichen "_"). Wenn der Benutzer Rechte für alle Tabellen erhalten soll, kann der Schlüssel all verwendet werden. |
pass | string | Passwort des Nutzers. Durch den ServerManager werden eingegebene Passwörter standardmäßig mit einem SHA256 gehasht. |
login_attempts | integer | Gibt die Anzahl der aktuellen Fehlversuche für den Benutzer an. Bei fünf Fehlversuchen wird der Nutzer automatisch gesperrt. |
active | integer-boolean | Gibt an ob der Nutzer aktiviert (1) oder deaktiviert (0) ist. |