约书亚·布洛赫(Joshua Bloch)的《有效的Java》中的一项内容是,类应允许实例的变异尽可能少,最好根本不允许变异。
通常,对象的数据会保存到某种形式的数据库中。这使我开始思考数据库中的不变性,特别是对于那些代表较大系统中单个实体的表而言。
我最近一直在尝试的一种想法是尝试最小化我对代表这些对象的表行的更新,并尝试尽可能多地执行插入。
我最近正在尝试的一个具体示例。如果我知道以后可以在记录中附加其他数据,我将创建另一个表来表示该表,类似于以下两个表定义:
create table myObj (id integer, ...other_data... not null);
create table myObjSuppliment (id integer, myObjId integer, ...more_data... not null);
希望这些名字不是一字不漏的,只是为了说明这个想法。
这是数据持久性建模的合理方法吗?是否值得尝试限制在表上执行的更新,尤其是对于最初创建记录时可能不存在的数据填充空值?有时候这样的方法以后可能会引起严重的疼痛吗?
UPDATE
)。像医生的病历。