Einer der Punkte in Joshua Blochs Effective Java ist die Vorstellung, dass Klassen die Mutation von Instanzen so wenig wie möglich und vorzugsweise überhaupt nicht zulassen sollten.
Häufig werden die Daten eines Objekts in einer Datenbank in irgendeiner Form gespeichert. Dies hat mich dazu gebracht, über die Idee der Unveränderlichkeit in einer Datenbank nachzudenken, insbesondere für diejenigen Tabellen, die eine einzelne Entität in einem größeren System darstellen.
Mit etwas, mit dem ich in letzter Zeit experimentiert habe, möchte ich versuchen, die Aktualisierungen zu minimieren, die ich an Tabellenzeilen vornehme, die diese Objekte darstellen, und stattdessen so viel wie möglich Einfügungen durchführen.
Ein konkretes Beispiel für etwas, mit dem ich kürzlich experimentiert habe. Wenn ich weiß, dass ich später möglicherweise einen Datensatz mit zusätzlichen Daten anhängen werde, erstelle ich eine weitere Tabelle, um dies darzustellen. Diese entspricht etwa den beiden folgenden Tabellendefinitionen:
create table myObj (id integer, ...other_data... not null);
create table myObjSuppliment (id integer, myObjId integer, ...more_data... not null);
Es ist hoffentlich klar, dass diese Namen nicht wörtlich sind, sondern nur, um die Idee zu demonstrieren.
Ist dies ein vernünftiger Ansatz für die Datenpersistenzmodellierung? Lohnt es sich, Aktualisierungen für eine Tabelle einzuschränken, insbesondere um Nullen für Daten einzufügen, die möglicherweise nicht vorhanden sind, als der Datensatz ursprünglich erstellt wurde? Gibt es Zeiten, in denen ein solcher Ansatz später starke Schmerzen verursachen könnte?
UPDATE
). Wie die Krankenakten des Arztes.