Hallo in die Expertenrunde,
in den Lehrbüchern zu
SQL wird immer auf die referentielle Integrität hingewiesen, um die Datenintegrität zu sichern.
Bisher habe ich darauf verzichtet. Die zu meinem Program gehörende
DB wird nur von meiner Anwendung benutzt, 'hintenrum' geht's nur, wenn ich als Programmierer irgendetwas ändern möchte.
Ich bin also bisher verantwortlich, das die Anwendung in der Datenbank nichts durcheinander bringt. Wenn jetzt eine referentielle Integrität dazu kommt, habe ich zwei Stellen, die für die Datenintegrität zuständig sind - für mich sieht das nach Mehraufwand ohne Mehrwert aus.
Gibt es gewichtige Gründe, über Fremdschlüssel die Datenintegrität zu sichern? Werden z.B. Selects schneller in der Ausführung?
Bin gespannt auf eure Antworten!
Beste Grüße
Gerd
Mach es in der Datenbank und Du kannst sicher sein, dass die Daten konsistent bleiben, egal wer und wie darauf zugreift. Das ist simples "future proofing"; auch wenn es momentan nur diese eine Anwendung gibt und nur einen Benutzer: verwendest Du niemals eines der Datenbank-Tools, die mit dem
DB Server geliefert werden? Keine
SQL-Scripte, keine Änderungen in der Tabellenstruktur, keine "manuellen" Korrekturen von Eingabefehlern? Wirst Du nicht irgendwann mal eine anderes Interface für die Datenbank schreiben (müssen)? Web, Android App?