Die Standortbestimmung ist eine Lernaufgabe, keine Falle. Sie zeigt, welche Grundlagen du sicher abrufen kannst und wo du in den nächsten Blöcken aufmerksam sein solltest.
Teil 1: Schema lesen¶
Erkläre mit eigenen Worten:
Warum
tickets.team_idverpflichtend ist.Warum
tickets.assigned_to_idoptional ist.Warum
ticket_labelseinen zusammengesetzten Primärschlüssel hat.Welche Daten beim Anzeigen einer Ticket-Liste wahrscheinlich gebraucht werden.
Teil 2: SQL korrigieren¶
Eine fehlerhafte Query ist ein realistisches Arbeitsmittel. In Projekten liest du oft bestehenden Code und musst entscheiden, ob er fachlich korrekt ist.
Typische Fragen:
Fehlt eine Join-Bedingung?
Werden optionale Beziehungen versehentlich ausgeschlossen?
Wird vor oder nach der Gruppierung gefiltert?
Ist die Query für den späteren API-Fall verständlich?
Teil 3: Transaktion skizzieren¶
Beim Erstellen eines Tickets sollen drei Operationen zusammengehören:
Ticket speichern
ersten Kommentar speichern
Event
createdspeichern
Wenn Schritt 2 fehlschlägt, muss Schritt 1 zurückgerollt werden. Sonst entsteht ein Ticket ohne Startkommunikation und ohne vollständigen Verlauf. Das ist kein SQL-Detail, sondern eine fachliche Konsistenzregel.
Teil 4: Zugriffstechnik einordnen¶
Nicht jeder Datenzugriff braucht dieselbe Technik:
| Situation | Häufig passende Technik |
|---|---|
| Ein Ticket per ID laden | Repository Method |
| Offene Tickets eines Teams laden | Repository Method oder JPQL |
| Reporting über Teams, Status und Priorität | native SQL oder gezielte Projektion |
| Tickets mit Kommentaren ohne N+1 laden | JPQL mit Fetch-Strategie oder DTO-Projektion |
Die genaue Entscheidung hängt vom Projekt ab. Wichtig ist, dass du sie begründen kannst.