Zitat: |
Ich habe nun 3 Listen angelegt, die die Daten der einzelnen Tabellen enthalten. |
Das klingt falsch insbesondere wenn du dagegen was prüfen willst.
a.) Da es bedeutet das du alle Daten der Datenbank auch lokal haben musst. Das will man üblicherweise nicht. Und
b.) das wenn es sich um ein Multiuser-System handelt das was du in den Listen an Daten aus der Datenbank hältst nicht mehr mit dem übereinstimmen muss was tatsächlich in der Datenbank ist.
Jegliche Prüfung dagegen ist also potentiell zu aufwendig und dazu auch noch potentiell falsch.
Zitat: |
Ist die Adresse bereits in der Tabelle der Adressen enthalten, so wird sie nicht erneut zugefügt.
Ist der Ort bereits in der Tabelle der Orte enthalten, so wird er nicht erneut hinzugefügt.
Ist die Person bereits in der Datenbank enthalten, so wird eine Ausnahme geworfen.
Falls beim Schreiben des neuen Datensatzes in die Datenbank ein Fehler auftritt, wird der neue Datensatz verworfen und eine Ausnahme geworfen. |
Mit den Angaben lässt sich fast sinnvoll arbeiten. Du musst eigentlich nur noch definieren was Gleichheit bedeutet.
Bei Adresse und Ort ist das eindeutig bei Person nicht. Name/Vorname sind bei Personen nicht eindeutig. Sollen wir für diesen Übungs(?)fall einfach annehmen das Personene eindeutig Namen haben?
Um das zu verstehen noch folgende Einzelfragen/Feststellungen
Zitat: |
Ist die Adresse bereits in der Tabelle der Adressen enthalten, so wird sie nicht erneut zugefügt. |
Hält deine Adresse Klasse nicht auch eine Id? Wenn die Id drin steckt bedeutet das doch das die aus der Datenbank kommt und damit existiert. Ich vermute mal das Adressen unabhängig von Personen existieren und damit sich die Adresse hinter einer AdressID niemals ändert oder gelöscht wird (oder zumindest aus anderen Gründen als das sich die Adresse einer Person ändert). Alles was du tun musst ist also zu prüfen ob deine Adresse eine AdressID hat oder nicht. Oder darf mann in deinem System Adressen frei eingeben und man kann eine Adresse haben aber ohne eine AdressId und muss jetzt erst nachträglich feststellen das diese Strasse/Hausnummerkombi in der Datenbank existiert und dessen AdressId herausfinden?
... to be continued (erstmal weiter das Spiel gucken
)