Foreign Key
Fremdschlüssel
Ein Fremdschlüssel ist eine Datenbankregel. Er lässt eine Spalte auf einen gültigen Schlüssel in derselben oder einer anderen Tabelle verweisen. `null` folgt der für diese Spalte gewählten Regel.
Ein weiteres Beispiel
Jede `invoice_line.invoice_id` muss auf eine bestehende Rechnung verweisen. Das Löschen eines Entwurfs löscht auch dessen Zeilen, aber eine gebuchte Rechnung kann nicht gelöscht werden und benötigt einen Stornierungsprozess. Bei Massenimporten werden fehlerhafte Zeilen beiseitegelegt, anstatt den Fremdschlüssel dauerhaft zu deaktivieren.
Hauptteile
- 01referenzierende Spalten
- 02referenzierter Kandidatenschlüssel
- 03Aktualisieren/Löschen-Aktion
Verwenden Sie es, wenn
Verwenden Sie einen Fremdschlüssel, wenn eine Datenbankbeziehung niemals auf einen fehlenden übergeordneten Eintrag zeigen darf. Wählen Sie dessen Aktualisierungs- und Löschaktionen sorgfältig aus.
Nutze es nicht, wenn
Bei gleichzeitiger Ausführung darf man sich nicht nur auf App-Prüfungen verlassen. Bevor eine Kaskadelöschung eine Grenze überschreitet, überprüfen Sie die Datenaufbewahrung und Prüfpflichten.
In Code verwendeter Name
FOREIGN KEY (…) REFERENCES … ON UPDATE/DELETE … Vor dem Ausliefern
Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback.
Outcome: Complete the task with Fremdschlüssel (Foreign Key). User context: Jede `invoice_line.invoice_id` muss auf eine bestehende Rechnung verweisen. Das Löschen eines Entwurfs löscht auch dessen Zeilen, aber eine gebuchte Rechnung kann nicht gelöscht werden und benötigt einen Stornierungsprozess. Bei Massenimporten werden fehlerhafte Zeilen beiseitegelegt, anstatt den Fremdschlüssel dauerhaft zu deaktivieren. Technical concept or control: Fremdschlüssel (Foreign Key). Why it fits: Verwenden Sie einen Fremdschlüssel, wenn eine Datenbankbeziehung niemals auf einen fehlenden übergeordneten Eintrag zeigen darf. Wählen Sie dessen Aktualisierungs- und Löschaktionen sorgfältig aus. Do not use it when: Bei gleichzeitiger Ausführung darf man sich nicht nur auf App-Prüfungen verlassen. Bevor eine Kaskadelöschung eine Grenze überschreitet, überprüfen Sie die Datenaufbewahrung und Prüfpflichten. Engineering requirements: Define inputs, outputs, contracts, and rules that must always hold. Set authorization and input checks. Define failures, timeouts, retries, one-time effects, data moves, and compatibility limits. Operations: Add useful signals and logs that hide sensitive data. Set capacity limits and write an operator guide. Test recovery and rollback. Acceptance criteria: Contract and failure-path tests pass. Data and authorization rules still hold during retries and partial failures. Check performance limits, monitoring, recovery, and rollback. Evidence and limits (evidence boundary): Es ist offiziell für diese Quelle. Andere Plattformen oder Teams können den Begriff auf andere Weise verwenden. Unknowns to confirm: Where the code runs, data stores, traffic shape, consistency needs, and the security boundary. Also confirm the compatibility period, service goals, and rollback limits.
Diese Anfrage prüfen
Review how Fremdschlüssel (Foreign Key) is used now. Definition: Ein Fremdschlüssel ist eine Datenbankregel. Er lässt eine Spalte auf einen gültigen Schlüssel in derselben oder einer anderen Tabelle verweisen. `null` folgt der für diese Spalte gewählten Regel. Release checks: Check contracts and invariants, authorization, and input limits. Test retries, one-time effects, timeouts, and partial failures. Verify data integrity, compatibility, monitoring, recovery, and rollback. Before changing code, list the evidence, gaps, severity, and the smallest safe fix.