Daten-Persistenz
Zuletzt aktualisiert: 24.04.2026
Daten-Persistenz & Speicherung
Um eine hohe Performance und Datensicherheit zu gewährleisten, nutzt Schatzmeister Safe zwei verschiedene Speichermethoden.
1. SQLite Datenbank (sqflite)
Für komplexe, strukturierte Daten nutzen wir eine lokale SQLite-Datenbank.
Besonderheit: Jede angelegte Kasse (Safe) hat eine eigene Datenbank-Datei im Format safe_[name].db. Dies sorgt für eine saubere Trennung der Buchhaltungen.
Tabellen-Struktur
| Tabelle | Inhalt | Wichtige Felder |
|---|---|---|
transactions | Alle Buchungen | Betrag, Kategorie, Zeitstempel, Sphäre, Sperr-Status |
members | Mitgliederliste | Name, E-Mail, Mitgliedsnummer, Jahresbeitrag |
quick_actions | Schnellzugriff-Tasten | Label, Betrag, Pfand, Icon |
event_sales | Verkäufe (Event-Modus) | Gesamtbetrag, Warenkorb (JSON), Erstattungen |
2. SharedPreferences (Key-Value)
Einfache Einstellungen und globale Zustände werden über die SharedPreferences des Betriebssystems (Android/iOS) gespeichert. Diese sind ideal für schnelle Zugriffe auf Einzelwerte.
Gespeicherte Werte
- Global:
active_safe_name: Aktuell gewählte Kasse.safe_names_list: Liste aller existierenden Kassen.treasurer_name: Name des Schatzmeisters.paypal_username: PayPal.me Link-ID.theme_mode: Hell/Dunkel Modus Präferenz.
- Pro Kasse (Safe-spezifisch):
bank_balance_[SafeName]: Aktueller Bankbestand.change_balance_[SafeName]: Barbestand (Gesamtwert).cash_counts_[SafeName]: Detaillierte Zählung (Münzen/Scheine als JSON).bank_name_[SafeName],iban_...,bic_...: Bankverbindung.
- Module:
event_planner_tasks: Liste der Aufgaben im Event-Planer (JSON).
3. Datenfluss & Backup
Das Backup-System (.vsk Dateien) konsolidiert alle oben genannten Quellen in ein einziges, verschlüsseltes JSON-Paket.
graph TD
App[Schatzmeister Safe App] -->|Strukturierte Daten| DB[(SQLite Databases)]
App -->|Einstellungen| SP[SharedPreferences]
DB -->|safe_hauptkasse.db| H[Hauptkasse]
DB -->|safe_fest2026.db| F[Sommerfest 2026]
subgraph Backup-Service
JSON{JSON Export}
H --> JSON
F --> JSON
SP --> JSON
end
JSON -->|AES Verschlüsselung| VSK[.vsk Sicherung]
Backup-Kompatibilität
- Aufwärts: Neue App-Versionen führen beim Öffnen einer alten Datenbank automatisch
onUpgrade-Skripte aus, um neue Tabellen oder Spalten hinzuzufügen. - Abwärts: Die JSON-Struktur des Backups ist so aufgebaut, dass alte Versionen unbekannte Felder einfach ignorieren, während neue Versionen fehlende Felder mit Standardwerten initialisieren.