Hallo,
ich habe folgendes Problem und wollte fragen, wie ich das am Besten lösen sollte:
Ausgangssituation:
Ich habe eine Anwendung in der gibt es Benutzer, die sich eine Liste aus mehreren Artikeln zusammenstellen können.
Nun hat der Benutzer folgende Möglichkeiten:
- Die Artikel in der Liste bestellen.
- Die Artikelliste für sich speichern.
- Eine vorhandene Artikelliste laden und bearbeiten.
Dann gibt es noch den Superuser, dieser soll Artikel löschen können ohne Rücksicht dadrauf, ob diese in irgendwelchen Artikellisten gespeichert wurden oder nicht.(Daher kommen Sperren hier schon mal nicht infrage)
Es werden also alle Fremdschlüsselreferenzen auf diesen Artikel aus den gespeicherten Artikellisten gelöscht.
Nun werde ich einige Szenarien beschreiben, gehe auf die Fehlerbehandlung davon ein und würde gern wissen, ob ihr das anders machen würdet und wenn ja, wie und warum?
Szenario1:
Ein Benutzer A erstellt sich eine Liste von Artikeln, die temporär gehalten wird. Während der Nutzer sich die Artikel aussucht, löscht der Superuser einen Artikel, den der Benutzer A in seiner Liste hat. Nun klickt der Benutzer auf absenden. Da es mindestens ein Artikel nicht mehr gibt, wird nun eine Exception von der Datenbank geworfen.
Szenario2:
Ein Benutzer A erstellt sich eine Liste von Artikeln, die temporär gehalten wird. Während der Nutzer sich die Artikel aussucht, löscht der Superuser einen Artikel, den der Benutzer A in seiner Liste hat. Nun klickt der Benutzer auf speichern. Da es mindestens ein Artikel nicht mehr gibt, wird nun eine Exception von der Datenbank geworfen.
Szenario3:
Ein Benutzer A lädt eine Liste von Artikeln. Während der Nutzer sich die Artikel anschaut, löscht der Superuser einen Artiekl, den der Benutzer A in seiner Liste hat. Nun fügt der Benutzer neue Artikel hinzu und klickt auf speichern. Da es mindestens ein Artikel nicht mehr gibt, wird nun eine Exception von der Datenbank geworfen.
Fehlerbehandlung:
Ich melde dem Benutzer, dass es mindestens einen Artikel nicht mehr gibt und biete ihm an die Liste aktualisieren zu lassen. Das heißt alle Artikel, die es nicht mehr gibt, rauswerfen zu lassen.
Szenario4:
Der Superuser löscht einen Artikel. Benutzer A lädt seine Artikelliste und stellt fest, dass Artikel verschwunden sind.
Fehlerbehandlung:
Hier bin ich mir nicht sicher, ob das wirklich ein tolles Verhalten ist oder ob, wenn ein Artikel gelöscht wird, jeder User, der diesen Artikel in einer Liste gehabt hat, evtl. eine Nachricht bekommen sollte?
Nun würde ich gern wissen, wie ihr solch ein Verhalten implementieren würdet, bzw. wie ihr den Nutzern das mitteilen würdet.