Se il valore predefinito è proprio questo, un valore predefinito, che non è "business logic". Se si inserisce un record e si imposta un numero intero a zero, è quella logica? La maggior parte dei linguaggi moderni (ad esempio praticamente tutto basato su C) si azzera comunque a zero. È davvero importante se lo si predefinisce su uno invece?
Per come la vedo io, la "logica di inserimento" entra in un trigger "dopo l'inserimento". Il codice viene eseguito, calcola un valore e lo imposta sul nuovo record. Ad esempio: all'inserimento, il campo C è impostato sulla somma dei campi A e B, anziché su un valore fisso come zero. Che è "logica di inserimento".
"Ogni nuovo record ottiene un valore di" baz "nel campo" foo "se non è già specificato" non è realmente logico in qualcosa di diverso dal senso più banale della parola, certamente non in un programma complesso.
What uses of the default clause when defining a column are not considered having business logic in the database?
Dato che menzioni in modo specifico la "clausola predefinita" che significherebbe "non un trigger", io dico che tutti usi della clausola predefinita non aggiungono logica al database.
Per inciso, la maggior parte dei database considera i valori predefiniti come vincoli predefiniti . In altre parole, " null
è al di fuori dei valori accettabili per questo campo quindi impostalo su qualcosa all'interno dell'insieme di valori accettabili". Se lo guardi in questo modo, un valore predefinito è quasi uguale a quello che specifica un intervallo di valori per un campo. Impostalo al di fuori di tale intervallo ( null
) e ottieni invece un valore predefinito.