AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Fehlerhaften ForeinKey finden
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlerhaften ForeinKey finden

Ein Thema von Perlsau · begonnen am 29. Aug 2015 · letzter Beitrag vom 31. Aug 2015
 
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

AW: Fehlerhaften ForeinKey finden

  Alt 30. Aug 2015, 16:35
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
Code:
on delete cascade
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 :
Code:
on delete set null
z.B. oder
Code:
on update cascade
Unbedingt ansehen ! Einfach löschen geht jedenfalls nicht. Bei abhängigen Tabellen komplett auf Foreign Keys zu verzichten, tsts.
Gruß
Hansa
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz