Ach, jetzt versteh ich: Klar, die Ort-Id in der Adresstabelle als ForeignKey zu kennzeichnen ist sinnvoll.
Vielleicht ist das jetzt halb klar. Der Grund wohl noch nicht richtig. Die Antworten sind mir allerdings zu kurz. Du musst prinzipiell dafür sorgen, dass keine Datenleichen im Keller der
DB rumliegen. Das passiert aber ohne die Foreign Keys vor allem ohne Regeln. Von letzterem sehe ich immer noch nichts. Plz/Schreibweise Ortsname usw. ist mir jetzt zu undurchsichtig. Deshalb folgendes Beispiel : ich will einen Lieferanten löschen, was nun ? Ich lösche den einfach und fertig. Jetzt habe ich aber auch 10 Artikel, die dieser Lieferant liefert. Auch egal, dann werden die eben auch gelöscht. Geht sogar ohne eigene Programmierung in der
DB über
bei den foreign keys. Lieferant löschen => auch Artikel sind weg, sofern die einen foreign Key auf die Lieferanten-ID haben.
Jetzt gehts aber irgendwann ums Geld : da sind nämlich noch 2 unbezahlte Rechnungen mit den 10 Artikeln, die ich ja soeben gelöscht habe wegen des Lieferanten. Schreib jetzt mal davon eine Mahnung. Die würde ähnlich aussehen, wie Deine Liste. Wegen der gelöschten Artikel stehen keine Rechnungspositionen auf der Rechnung, eventuell aber ein Endbetrag, weil der mit dem gelöschten Kram prinzipiell nichts zu tun hat. Also, das ganze ist auch ein Rattenschwanz bei dem man verdammt aufpassen muss.
Um die verschwundenen Rechnungs-Artikel eventuell noch irgendwie sichtbar zu halten gibts ja noch mehr :
z.B. oder
Unbedingt ansehen ! Einfach löschen geht jedenfalls nicht. Bei abhängigen Tabellen komplett auf Foreign Keys zu verzichten, tsts.