Jednym z elementów efektywnej Javy Joshua Blocha jest przekonanie, że klasy powinny pozwalać na mutację instancji jak najmniej, a najlepiej wcale.
Często dane obiektu są utrwalane w bazie danych jakiejkolwiek formy. Doprowadziło mnie to do myślenia o idei niezmienności w bazie danych, szczególnie dla tych tabel, które reprezentują pojedynczy byt w większym systemie.
Coś, z czym ostatnio eksperymentowałem, to pomysł zminimalizowania aktualizacji, które robię, do tabel wierszy reprezentujących te obiekty i próbowania zamiast tego wstawiania tak dużo, jak to możliwe.
Konkretny przykład czegoś, z czym ostatnio eksperymentowałem. Jeśli wiem, że później mogę dołączyć rekord z dodatkowymi danymi, utworzę kolejną tabelę, która to reprezentuje, podobnie jak dwie następujące definicje tabeli:
create table myObj (id integer, ...other_data... not null);
create table myObjSuppliment (id integer, myObjId integer, ...more_data... not null);
Miejmy nadzieję, że te nazwy nie są dosłowne, a jedynie w celu zademonstrowania pomysłu.
Czy jest to rozsądne podejście do modelowania trwałości danych? Czy warto próbować ograniczać aktualizacje wykonywane w tabeli, szczególnie w przypadku wypełniania wartości zerowych dla danych, które mogą nie istnieć podczas tworzenia rekordu? Czy zdarza się, że takie podejście może później spowodować silny ból?
UPDATE
). Jak dokumentacja medyczna lekarza.