Tengo una pregunta con respecto a las dos columnas adicionales (timeCreated, timeLastUpdated) para cada registro que vemos en muchas soluciones. Mi pregunta: ¿hay una mejor alternativa?¿Cómo evitas agregar campos de marca de tiempo a tus tablas?
Escenario: tiene una gran base de datos (en términos de tablas, no registros), y luego el cliente viene y le pide que agregue "marca de tiempo" al 80% de sus tablas.
Creo que esto se puede lograr usando una tabla separada (TIMESTAMPS). Esta tabla tendría, además de la columna obvia de marcas de tiempo, el nombre de la tabla y la clave principal de la tabla que se está actualizando. (Supongo que aquí utiliza una int como clave principal para la mayoría de las tablas, pero el nombre de la tabla probablemente debería ser una cadena).
Para imaginar esto, suponga este escenario básico. Tendríamos dos tablas:
PAGO: - (sus registros habituales)
Hora: - {fecha y hora actual} + {TABLE_UPDATED
, id_of_entry_updated
, timestamp_type
}
en cuenta que en este diseño que no necesita los dos columnas "extra" en su objeto de pago nativo (que, dicho sea de paso, podrían llegar a través de su solución ORM) porque ahora está indexando por TABLE_UPDATED
y id_of_entry_updated
. Además, timestamp_type
le dirá si la entrada es para inserción (por ejemplo, "1"), actualización (por ejemplo, "2") y cualquier otra cosa que desee agregar, como "eliminación".
Me gustaría saber qué piensas de este diseño. Estoy muy interesado en las mejores prácticas, lo que funciona y escalas en el tiempo. Referencias, enlaces, entradas de blog son más que bienvenidas. Conozco al menos una patente (pendiente) que trata de resolver este problema, pero parece que los detalles no son públicos en este momento.
Saludos, Eduardo
Esta es la publicación más feliz que alguna vez me ha hecho. Me estaba preparando para escribir una publicación que deseara exactamente esto. No creo que Oracle tenga algo como esto. Si lo hace, voy a patearme a mí mismo. – MusiGenesis
Me enojo pensando en todo el tiempo que he perdido al agregar los campos ModifiedBy y CreatedDateTime a mis tablas. – MusiGenesis
Uh, sí, Oracle ha tenido esto durante años. –