1.6 KiB
1.6 KiB
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.mdundDoku/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_idgefiltert) - 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_atFeld 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)