Fare entrambe le cose dovrebbe essere considerato un'opzione. Ci sono casi in cui la logica è troppo complessa e si basa su dati provenienti da così tante altre tabelle, che il codice del database è solo un brutto posto per gestirlo. Se l'obiettivo è di metterli sempre nello stesso posto, non si può voler violare questo, quindi tieni tutto sul modulo.
Nel modulo, puoi prepopolare i valori predefiniti, in modo che l'utente sappia cosa sono e potenzialmente può cambiarli o se è un valore non importante per l'utente e / o se non vuoi che lo cambi, hai la flessibilità di lasciarlo fuori dalla forma e lasciare che sia il db a gestirlo.
In questo modo, se esegui qualsiasi tipo di importazione / trasferimento della data, sai che le regole verranno comunque mantenute.
Ovviamente il rovescio della medaglia è la duplicazione degli sforzi e il mantenimento delle cose coordinate e supportate lungo la strada. Ci sono due potenziali luoghi da determinare, "Da dove proviene questo valore?"