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

TabelleInhaltWichtige Felder
transactionsAlle BuchungenBetrag, Kategorie, Zeitstempel, Sphäre, Sperr-Status
membersMitgliederlisteName, E-Mail, Mitgliedsnummer, Jahresbeitrag
quick_actionsSchnellzugriff-TastenLabel, Betrag, Pfand, Icon
event_salesVerkä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.
Zurück zur Übersicht