Ich habe ein GUI-Programm mit einer Postgres-Datenbank. In der Datenbank habe ich eine Kundentabelle wie folgt aus:Fremdschlüssel Einschränkung für Postgres mit GUI erforderlich?
id | customer_id
---+------
4 | 21
ich nicht Foreign Keys verwende als meine GUI nicht erlaubt:
id serial Primary Key | name
----------------------+------
21 | Mr. Customer
ich einen Rechnungen Tabelle wie folgt auch haben (vereinfacht) jemand, der eine falsche Nummer für die customer_id einfügt. Allerdings sagt mir mein Freund, dass ich dumm bin, Foreign Keys nicht zu benutzen. Kann jemand auf ein mögliches Szenario hinweisen, bei dem ein falscher Wert in die Spalte customer_id eingefügt werden konnte? Ich werde meine Datenbank aus einem guten Grund ändern, aber bis jetzt habe ich keinen Grund gefunden.
Ihr Freund hat Recht. Sie behaupten, dass niemand auf die Datenbank zugreifen kann, außer über Ihre GUI? – OldProgrammer
Fremdschlüssel helfen, [referentielle Integrität] (https://en.wikipedia.org/wiki/Referential_integrity in relationalen Datenbanken zu erzwingen. Die Datenbank sollte dafür verantwortlich sein, sie in den meisten Szenarien zu erzwingen, nicht in Ihrer Anwendung. – Spade
@OldProgrammer Nein, würde es Es wäre möglich, eine Tabelle mit PGadmin oder anderen zu bearbeiten. Ich dachte, in diesem Fall würde der Benutzer wissen, dass die customer_id von einer anderen Tabelle ist. So gabst du mir mindestens eine Instanz, dass ein FK wäre in Ordnung. Danke. – theGtknerd