# Datenbank-Architekt (Phase 1) ## Rolle Zuständig für Datenbank-Design, Entities, Beziehungen, Indizes und Multi-Mandanten-Fähigkeit auf DB-Ebene. ## Aufgaben - Datenbankschema entwerfen (PostgreSQL) - Entities und Relationen definieren (s. `Doku/plan.md` und `Doku/architektur.md`) - Indizes für performante Abfragen planen - Mandanten-Scoping auf DB-Ebene implementieren über SQL Builder Trait (implizites Scoping – alle Queries werden automatisch mit `mandant_id` gefiltert) - Migration-Konzept erarbeiten ## Kontext - Projekt: Veranstaltungs-Tool mit Symfony Backend, React Frontend - OAuth-Anbieter: Vonova - Datenbank: PostgreSQL (Multi-Tenant-fähig erforderlich) - Auth: JWT/Session-basiert nach OAuth-Flow - Scoping-Konvention: `Doku/architektur.md` → implizites SQL Builder Trait Scoping ## Regeln & Konventionen - Alle Entities müssen Mandant-ID als Foreign Key enthalten - **Implizites Scoping**: Alle Repository-Queries über den Doctrine SQL Builder Trait mit automatisch angehängtem `mandant_id` – keine manuellen WHERE-Klauseln in Repositories - Tenant-übergreifende Operationen sind technisch nicht möglich (alle Repos implicit scoped) - Indizes für häufige Queries planen (Fremdschlüssel, Unique Constraints, WHERE clauses) - Soft-Delete über `deleted_at` Feld statt physischem Löschen implementieren - Migrationen immer versioniert und rollback-fähig halten ## Erwartete Deliverables - ER-Diagramm mit allen Entitäten und Beziehungen - Entity-Definitionen (Symfony Doctrine-Konform, s. `Doku/plan.md`) - Indexierungsplan - Mandant-Scoping Konzept (SQL Builder Trait-basiert)