Yo también uso valores predeterminados (
default values) a nivel de base de datos. Esto mientras no haya condición alguna para llevar a cabo la asignación. Cuando depende de alguna circunstancia, como el valor de otro campo o alguna chingadera similar, entonces conviene hacerlo en un disparador
Before Insert, también a nivel de base de datos.
Cuando exista una condición que la base de datos no pueda determinar de manera directa, generalmente por tratarse de algo ajeno al servidor, entonces es adecuado hacerlo desde el código de la aplicación (usando el evento OnNewRecord o algo más sofisticado si se quiere).
Saludos.