Foreign Key
Chiave Esterna
Una chiave esterna è una regola del database. Fa sì che una colonna punti a una chiave valida nella stessa tabella o in un'altra. `null` segue la regola scelta per quella colonna.
Un altro esempio
Ogni `invoice_line.invoice_id` deve puntare a una fattura esistente. Eliminare una bozza elimina anche le sue righe, ma una fattura registrata non può essere eliminata e richiede un processo di inversione. Gli import massivi mettono da parte le righe errate invece di disattivare per sempre la chiave esterna.
Parti principali
- 01Colonne di riferimento
- 02Chiave candidata riferita
- 03Azione di aggiornamento/eliminazione
Usalo quando
Usa una chiave esterna quando una relazione di database non deve mai puntare a un genitore mancante. Scegli con cura le azioni di aggiornamento e cancellazione.
Non usarlo quando
In caso di concorrenza, non fare affidamento solo sui controlli dell'app. Prima che l'eliminazione a cascata attraversi un confine, rivedi la conservazione dei dati e i compiti di audit.
Nome usato nel codice
FOREIGN KEY (…) REFERENCES … ON UPDATE/DELETE … Prima di spedire
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 Chiave Esterna (Foreign Key). User context: Ogni `invoice_line.invoice_id` deve puntare a una fattura esistente. Eliminare una bozza elimina anche le sue righe, ma una fattura registrata non può essere eliminata e richiede un processo di inversione. Gli import massivi mettono da parte le righe errate invece di disattivare per sempre la chiave esterna. Technical concept or control: Chiave Esterna (Foreign Key). Why it fits: Usa una chiave esterna quando una relazione di database non deve mai puntare a un genitore mancante. Scegli con cura le azioni di aggiornamento e cancellazione. Do not use it when: In caso di concorrenza, non fare affidamento solo sui controlli dell'app. Prima che l'eliminazione a cascata attraversi un confine, rivedi la conservazione dei dati e i compiti di audit. 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): È ufficiale per quella fonte. Altre piattaforme o team potrebbero usare il termine in modo diverso. 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.
Controlla questa richiesta
Review how Chiave Esterna (Foreign Key) is used now. Definition: Una chiave esterna è una regola del database. Fa sì che una colonna punti a una chiave valida nella stessa tabella o in un'altra. `null` segue la regola scelta per quella colonna. 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.