# Datenbank-Konzept (LMDB)

FabAccess BFFH nutzt derzeit eine auf Datenbank auf Dateibasis. Hierzu bedient es sich der Rust-Implementierung [*lmdb\_rs*](https://vhbit.github.io/lmdb-rs/) für die original in C geschriebene [LMDB](https://docs.fab-access.org/books/awesome-fabinfra/page/glossar-begrifflichkeiten-und-abkurzungen#bkmrk-lmdb-%28lightning-memo) (Lightning Memory-Mapped Database). Das ist eine eingebettete transaktionale Datenbank in Form eines Key-Value-Speichers.

BFFH schreibt in die Datenbank zwei wesentliche Informationsspeicher:

- `users`: Benutzerdatenbank (Nutzernamen, Passwörter, Cardkeys, Rollenzuweisungen)
- `states`: Ressourcenzustände

<p class="callout warning">**Wichtig zu wissen:** Die Datenbank speichert ihre Daten nicht im Klartext. Die als Datei erzeugte Datenbank bffh.db ist abhängig vom System, wo sie angelegt wurde. Jeder Recompile oder Umzug auf einen anderen Host bzw. Architektur macht die Datenbank unbrauchbar. Deshalb muss auch vor jedem Update eine Sicherung erstellt werden, die jedoch re-importiert werden kann.</p>