Uno degli elementi in Effective Java di Joshua Bloch è l'idea che le classi dovrebbero consentire la mutazione delle istanze il meno possibile e preferibilmente non del tutto.
Spesso, i dati di un oggetto vengono conservati in un database di qualche forma. Questo mi ha portato a pensare all'idea di immutabilità all'interno di un database, in particolare per quelle tabelle che rappresentano una singola entità all'interno di un sistema più grande.
Qualcosa che ho sperimentato di recente è l'idea di cercare di ridurre al minimo gli aggiornamenti che faccio alle tabelle che rappresentano questi oggetti e di provare a eseguire inserimenti il più possibile.
Un esempio concreto di qualcosa che stavo sperimentando di recente. Se so che potrei aggiungere un record con dati aggiuntivi in seguito, creerò un'altra tabella per rappresentarlo, un po 'come le seguenti definizioni di due tabelle:
create table myObj (id integer, ...other_data... not null);
create table myObjSuppliment (id integer, myObjId integer, ...more_data... not null);
Si spera ovvio che questi nomi non siano testuali, ma solo per dimostrare l'idea.
È un approccio ragionevole alla modellizzazione della persistenza dei dati? Vale la pena provare a limitare gli aggiornamenti eseguiti su una tabella, in particolare per la compilazione di valori null per i dati che potrebbero non esistere al momento della creazione del record? Ci sono momenti in cui un approccio come questo potrebbe causare un forte dolore in seguito?
UPDATE
). Come le cartelle cliniche del dottore.