Uno de los elementos en Joshua Bloch's Effective Java es la noción de que las clases deberían permitir la mutación de las instancias lo menos posible, y de preferencia ninguna.
A menudo, los datos de un objeto se conservan en una base de datos de alguna forma. Esto me ha llevado a pensar en la idea de la inmutabilidad dentro de una base de datos, especialmente para aquellas tablas que representan una sola entidad dentro de un sistema más grande.
Algo con lo que he estado experimentando recientemente es la idea de intentar minimizar las actualizaciones que hago en las filas de la tabla que representan estos objetos, y tratar de realizar inserciones tanto como pueda.
Un ejemplo concreto de algo con lo que estaba experimentando recientemente. Si sé que podría agregar un registro con datos adicionales más adelante, crearé otra tabla para representar eso, algo así como las siguientes dos definiciones de tabla:
create table myObj (id integer, ...other_data... not null);
create table myObjSuppliment (id integer, myObjId integer, ...more_data... not null);
Es de esperar que sea obvio que estos nombres no son textuales, sino solo para demostrar la idea.
¿Es este un enfoque razonable para el modelado de persistencia de datos? ¿Vale la pena tratar de limitar las actualizaciones realizadas en una tabla, especialmente para rellenar valores nulos para datos que podrían no existir cuando se creó originalmente el registro? ¿Hay momentos en que un enfoque como este puede causar dolor severo más adelante?
UPDATE
). Como los registros médicos del doctor.