Datenmodell
calServer verwendet eine MySQL-Datenbank mit mandantenfaehiger Struktur. Die Datenbanktrennung erfolgt pro Mandant auf Datenbankebene -- jeder Mandant arbeitet mit einer eigenen Datenbankinstanz. Dieser Abschnitt beschreibt die zentralen Entitaeten und ihre Beziehungen.
Inventar (Inventory)
Die Inventartabelle ist die zentrale Entitaet. Sie speichert alle Prüf- und Messmittel.
Aspekt
Beschreibung
Modell
FrontendInventory
Primaerschluessel
Inventar-ID
Felder
Dynamisch konfigurierbar ueber die Feldverwaltung (I-Serie: I4201 bis I4262)
Beziehungen
1:n zu Kalibrierungen, Wartungen, Buchungen, DMS-Dokumenten
Kategorien
Zuordnung ueber FrontendCategory / FrontendCategoryItem
Typen
Geraetetypen ueber FrontendTypes
Hierarchie
Eltern-Kind-Beziehungen ueber ein path-Feld
Die Felder I4201 bis I4262 werden zur Laufzeit ueber die Feldkonfiguration (field_configuration) mit Bezeichnungen, Typen und Validierungsregeln versehen. Siehe Feldkonstanten fuer die Verwendung als Platzhalter.
Kalibrierungen (Calibrations)
Kalibriervorgaenge sind mit dem Inventar verknuepft und enthalten Messergebnisse.
Aspekt
Beschreibung
Modell
FrontendCalibration
Felder
Dynamisch konfigurierbar (C-Serie: C2301 bis C2396)
Beziehungen
n:1 zu Inventar, 1:n zu Ergebnissen (FrontendResults), n:m zu Standards (FrontendStandards)
Ergebnisse
FrontendResults / FrontendResultsRaw -- Messwerte und Rohdaten
Prozeduren
FrontendProcedure -- Kalibrierverfahren mit Schritten (FrontendTestStep)
Prozedurvorlagen
FrontendProcedureTemplate -- Wiederverwendbare Vorlagen
Kunden (Customers)
Aspekt
Beschreibung
Modell
FrontendCustomer / FrontendContact
Beschreibung
Kundenstammdaten mit Ansprechpartnern
Beziehungen
1:n zu Inventaren (Kundengeraete), 1:n zu Auftraegen
Auftraege (Orders/Bookings)
Aspekt
Beschreibung
Modell
FrontendBooking
Beschreibung
Kalibrierauftraege mit Statusverfolgung
Artikel
FrontendArticle / FrontendStandardArticle -- Auftragspositionen und Artikelstamm
Preise
FrontendPrices / FrontendPriceCategory -- Preislisten und Preisgruppen
Wartung und Reparaturen
Aspekt
Beschreibung
Modell
FrontendRepair
Beschreibung
Wartungs- und Reparaturvorgaenge fuer Inventargegenstaende
Kategorien
Eigene Kategorienzuordnung
Leihmessmittel (Rentals)
Aspekt
Beschreibung
Modell
FrontendBooking (Typ: Leihe)
Standorte
FrontendLocation -- Standortverwaltung fuer Leihgeraete
Dokumentenmanagement (DMS)
Aspekt
Beschreibung
Modell
FrontendDms / FrontendInbox
Beschreibung
Versionierte Dokumentenverwaltung mit Eingangsordner
Speicherung
Lokales Dateisystem, FTP, SFTP oder DigitalOcean Spaces
Verknuepfung
Dokumente werden mit Inventaren, Kalibrierungen oder Auftraegen verknuepft
Benutzer und Rechte
Aspekt
Beschreibung
Modell
FrontendUser / FrontendProfile
API-Schluessel
FrontendUserKey -- Authentifizierungsschluessel fuer die REST-API
RBAC
Datenbankbasierte Rechteverwaltung ueber KCDbAuthManager mit Rollen und Operationen
Gruppen
Benutzergruppen und Freigabegruppen fuer Datenzugriffsteuerung
Audit
FrontendAudit / FrontendPasswordAudit -- Protokollierung von Aenderungen und Passwortverlauf
Status
Aspekt
Beschreibung
Modell
FrontendStatus / FrontendMapStatus
Beschreibung
Konfigurierbares Statussystem fuer Inventare, Kalibrierungen, Buchungen, Reparaturen, Standorte und Support-Tickets
Statustypen
Definiert in constants.php: inventory, calibration, booking, notepad, repair, location, support_tickets
Automatisierung
Regelbasierte Statusaenderungen ueber den status-CLI-Befehl
Feldkonfiguration
Aspekt
Beschreibung
Tabelle
field_configuration
Beschreibung
Dynamische Felddefinition fuer Inventar- und Kalibrierfelder
Feldtypen
Text (diverse Laengen), TextArea, YesNo, Tags, Parameter, Date, Time, DateTime, Decimal, Integer, Link, HtmlEditor, CounterField, AverageValue
Kategorien
RequiredDatabase, RequiredList, PickDatabase, PickList, StatusDatabase
Die Feldkonfiguration erlaubt es Administratoren, die Datenstruktur ohne Codeaenderungen an die Anforderungen ihres Labors anzupassen.
Berichte und Zertifikate
Aspekt
Beschreibung
Vorlagen
JasperReports-Vorlagen (.jrxml) unter httpdocs/reports/
Verzeichnisse
calibrations, inventories, orders, locations, email_sender, individual_delivery, information
DCC
Digitale Kalibrierscheine werden aus Kalibrierdaten als XML erzeugt (siehe DCC-Export )
E-Mail-System
Aspekt
Beschreibung
Konfiguration
Mailer-Aktionen mit Intervallen (Tag, Woche, Monat, Jahr)
Vorlagen
Konfigurierbare E-Mail-Vorlagen mit Platzhaltern ([EMAIL], [NAME], [DOMAIN] u. a.)
Warteschlange
Zweistufig: mailer erzeugt Eintraege, sendemailqueue versendet
Weitere Entitaeten
Entitaet
Modell
Beschreibung
Aufgaben
FrontendNotepad / FrontendNotepadResource
Aufgabenverwaltung mit Ressourcenzuordnung
Physikalische Groessen
FrontendPhysicalQuantity
Physikalische Groessen und SI-Praefixe (FrontendSiPrefix)
Spezifikationen
FrontendSpecification / FrontendSpecificationDetail
Spezifikationen fuer Geraetetypen
Qualitaetspruefungen
FrontendQualityProvision / FrontendQualityProvisionDetail
Qualitaetssicherungsverfahren
Unterschriften
FrontendSignature
Digitale Unterschriften
Statistiken
FrontendFilterStatistic
Gespeicherte Filterstatistiken
Synchronisation
FrontendInventorySync / FrontendMssqlSyncLog
Datensynchronisation mit externen Systemen
Cookies
FrontendCookieCategory / FrontendCookieItem
Cookie-Consent-Verwaltung
Anmeldesicherheit
FrontendLoginSecurity
Fehlgeschlagene Anmeldeversuche und Sperren
Migrationen
Datenbankschema-Aenderungen werden ueber Yii-Migrationen verwaltet (httpdocs/protected/migrations/). Der Migrationsbefehl lautet:
Die Migrationsdateien folgen dem Namensmuster mYYMMDD_HHMMSS_beschreibung.php.
27. Februar 2026
26. Februar 2026