Datenbank
Datenbank
Abschnitt betitelt „Datenbank“Alle Tabellen leben im traffino-Schema (nicht public).
Audit-Infrastructure
Abschnitt betitelt „Audit-Infrastructure“Jede Business-Tabelle hat:
created_at,created_by— Erstellungszeitpunkt und -Userupdated_at,updated_by— Letzte Aenderungrow_versionINT — Optimistic Lockingrow_periodTSTZRANGE — Temporal History (System-Time)- History-Tabelle:
{table}_historymit gleicher Struktur - Trigger:
auditing()(setzt Timestamps, loggt Deletes) +versioning()(Temporal Tables) audit_deletionsTabelle: Soft-Delete-Log (id, table_name, deleted_at, deleted_by)
Kern-Tabellen
Abschnitt betitelt „Kern-Tabellen“| Tabelle | Beschreibung |
|---|---|
tenant | Kunden (Name, Slug, Kontakt) |
account | Benutzer, Rollen, tenant_id |
session | Aktive Sessions |
login_attempt | Login-Versuche, 2FA-Codes |
known_device | Bekannte Geraete fuer 2FA-Skip |
password_reset | Reset-Codes (Admin-initiiert) |
site | Websites pro Tenant |
page | Seiten pro Site (Slug, Template-Referenz) |
template | Seiten-Templates |
template_field | Template-Felder (Platzhalter-Definition) |
message | Kontaktanfragen |
analytics_event | Rohe Tracking-Events |
email | Deduplizierte E-Mail-Adressen (SHA-256 Hash) |
email_gdpr_compliance | DSGVO-Consent-Tracking (DOI) |
email_relation | Verknuepft E-Mails mit Entitaeten (polymorph) |
email_template | HTML-Templates in der DB (3-Ebenen-Hierarchie) |
email_translation_key | Uebersetzbare Texte fuer E-Mail-Templates |
system_message | E-Mail-Queue (pending → sent/failed) |
system_message_relation | Idempotenz-Verknuepfung |
geolocation | MaxMind-Ergebnisse (1:1-Erweiterung) |
Naming-Konvention: Alle Tabellen im Singular (account, session, email_template).
Migrationen
Abschnitt betitelt „Migrationen“| Nr. | Beschreibung |
|---|---|
| 000001 | Audit-Infrastruktur (Trigger, History-Pattern) |
| 000002 | Account, Tenant, Site, Auth-Tabellen, E-Mail-Modell |
| 000003 | Content-Modell (Template, Page, Storage, Message, Analytics), E-Mail-System Seeds |
| 000004 | Account-Verwaltung (password_reset Tabelle, account.locale, E-Mail-Templates) |
| 000005 | Tenant-Owner-Rolle |
ID-Strategie
Abschnitt betitelt „ID-Strategie“UUIDv7 — zeitbasiert, sortierbar, bessere Index-Performance als UUIDv4.