Die Datenbank bildet den vollständigen Lebenszyklus einer Bewerbung ab – von der Firma über die konkrete Stelle bis hin zu Bewerbung, Statusverlauf und zugehörigen Belegen.
Ziel der Struktur ist:
Die Datenbank ist normalisiert, aber bewusst pragmatisch gehalten.
| Tabelle | Beschreibung |
|---|---|
firma | Stammdaten der Unternehmen |
stelle | Konkrete Stellen/Ausschreibungen |
bewerbung | Einzelne Bewerbungen |
status_verlauf | Historie aller Statusänderungen |
dokument | Zugeordnete Belege |
v_nachweis_bewerbungen_mit_belegen | Konsolidierte Nachweissicht (View) |
Speichert die Stammdaten der Unternehmen, bei denen Bewerbungen erfolgen.
| Feld | Typ | Beschreibung |
|---|---|---|
firma_id | INT (PK) | Eindeutige ID |
name | VARCHAR | Name der Firma |
ort | VARCHAR | Ort / Sitz |
webseite | VARCHAR | Firmenwebseite |
notizen | TEXT | Freie Zusatzinformationen |
created_at | DATETIME | Zeitpunkt der Anlage |
Repräsentiert eine konkrete Ausschreibung oder Position bei einer Firma.
| Feld | Typ | Beschreibung |
|---|---|---|
stelle_id | INT (PK) | Eindeutige ID |
firma_id | INT (FK) | Verweis auf firma |
titel | VARCHAR | Stellentitel |
referenznummer | VARCHAR | Interne/öffentliche Referenz |
stellen_url | VARCHAR | URL zur Ausschreibung |
quelle_plattform | VARCHAR | Quelle (z. B. Portal) |
ort_text | VARCHAR | Arbeitsort (Text) |
arbeitsmodell | VARCHAR | Vor Ort / Hybrid / Remote |
beschaeftigung | VARCHAR | Vollzeit / Teilzeit |
notizen | TEXT | Zusatzinfos |
Zentrale Tabelle fĂĽr jede einzelne Bewerbung.
Der aktuelle Status wird hier redundant gespeichert, um schnelle Abfragen zu ermöglichen.
Die vollständige Historie liegt in status_verlauf.
| Feld | Typ | Beschreibung |
|---|---|---|
bewerbung_id | INT (PK) | Eindeutige ID |
stelle_id | INT (FK) | Verweis auf stelle |
bewerbungsdatum | DATE | Datum der Bewerbung |
kanal | VARCHAR | Bewerbungsweg |
aktueller_status | VARCHAR | Letzter Status |
naechstes_nachfassen | DATE | Erinnerungsdatum |
betreff | VARCHAR | Betreff / Titel |
notizen | TEXT | Freie Notizen |
Speichert jede Statusänderung einer Bewerbung als eigenen Datensatz.
offennachfassen_geplantrueckmeldungeinladungabsageangebotkeine_antwortzurueckgezogen| Feld | Typ | Beschreibung |
|---|---|---|
status_verlauf_id | INT (PK) | Eindeutige ID |
bewerbung_id | INT (FK) | Zugehörige Bewerbung |
status | VARCHAR | Neuer Status |
status_datum | DATE | Datum der Änderung |
quelle | VARCHAR | Quelle (Portal, E-Mail, etc.) |
notizen | TEXT | Erläuterungen |
Enthält alle Belege, die einer Bewerbung zugeordnet sind.
| Feld | Typ | Beschreibung |
|---|---|---|
dokument_id | INT (PK) | Eindeutige ID |
bewerbung_id | INT (FK) | Zugehörige Bewerbung |
typ | VARCHAR | Dokumenttyp |
dateipfad | VARCHAR | Pfad zur Datei |
url | VARCHAR | Alternative externe URL |
erstellt_am_datum | DATE | Dokumentdatum |
notizen | TEXT | Zusatzinformationen |
Konsolidierte Lesesicht fĂĽr Auswertungen.
Änderungen an der Darstellung können auf Datenbankebene erfolgen, ohne PHP-Code anzupassen.
Alle Tabellen sind ĂĽber Foreign Keys logisch verknĂĽpft:
firma
└── stelle
└── bewerbung
├── status_verlauf
└── dokument
Löschungen erfolgen bewusst nicht automatisch, um Datenverlust zu vermeiden.
Die Struktur ist vorbereitet fĂĽr:
Ohne strukturelle Änderungen an bestehenden Tabellen.
Die Datenbankstruktur ist:
Sie bildet die Grundlage für einen belastbaren, formalen Bewerbungsnachweis und ist bewusst unabhängig von externen Systemen.