Mysql: Establecer valor por defecto en un datetime o controlarlo por código?

El caso es que hoy en el trabajo he tenido una regresión porque un compañero había quitado los valores por defecto de dos columnas en base de datos donde se están almacenando las sesiones. La primera es la fecha y hora de creación (a partir de ahora diré solo fecha) de la sesión que misteriosamente él la llama "fecha_alta" y la otra es la fecha y hora de la última modificación que él la llama "fecha_modif". Lo primero es que odio que nombre tan pésimamente los campos, variables, funciones, etc. Pero vayamos a la pregunta, yo había establecido la fecha actual como valor por defecto de esas columnas porque creo que se inserte de la manera que se inserte la información ya sea desde código php, o en una insert a mano en sql, o como sea la fecha de creación siempre debe ser la actual y de igual modo la fecha de última modificación. Según el no le parece bien y prefiere que se controle por código lo que significa que siempre debes de acordarte en el insert de establecer estos dos valores (bueno, el la de modificación la pone a null) dando pié desde mi punto de vista a posibles errores.


Qué opináis vosotros? mejor controlarlo desde la base de datos o desde código?

Comentarios

  • Yo dejaría el valor por defecto, porque si alguna vez el código se chapucea, y no se define la fecha, no petará. Pero sólo si la norma del todo el sistema es introducir la fecha actual como fecha de alta.

    Aunque si la documentación, ( ¿porque hacéis documentación verdad? ), deja claro el comportamiento que tiene, pues no pasa nada.

    Sobre el nombre de los variables, etc, tenemos que discutirlo otro día jajaja.

  • Lo del nombrado de variables, funciones etc, hay un capítulo entero dedicado a ello en el libro "Clean Code" de Uncle Bob. Si no lo has leído échale un vistazo.

  • Por comodidad, optaría por la opción de dejar el valor por defecto, pero como dice @deabru sería conveniente que se siguiera una guía de estilo en todo el proyecto, y por supuesto, comprobaría que hora y zona horaria del sistema estuviera correctamente configurada.

    Respecto a las nomenclaturas, está claro que pueden dar mucho de sí, pero de nuevo me remito a las guías de estilo del propio proyecto. No hay peor cosa que ponerte a ver código en un proyecto y ver qué cada programador ha seguido su propio criterio...

  • Lo de la guía de estilo lo he defendido siempre, por desgracia donde he trabajado no han sido empresas tan profesionales como para poder implantarlo. Yo soy de los que me da mucha rabia ver una variable declarada con camel case al lado de otra declarada con guión bajo como separador, o que en una función se abra las llaves al final de línea y en el bucle que va dentro se abra en la línea siguiente. Lo de dejarse comentarios de cosas que han ido probando por todas partes ya me repatea jejejejeje.


    Ayyy! si yo os enseñara código que he visto y que sigo tocando cada día...

Accede o Regístrate para comentar.