我正在设计一个存储实体及其关系的系统。
每个实体都有属性,每个属性都应该被版本化,所以当实体的属性发生变化时,会添加一个新的历史状态。复杂性来自这样一个事实,即我还需要对单独实体之间的关系进行版本控制。例如:当实体A
从 parent 移动X
到 parentY
时,两个实体的关系也会获得新的历史状态。
我正在寻找有关如何在较低级别上进行设计的建议-是否有任何设计模式可用于此类事情,或任何其他最佳实践/经过验证的方法?
我正在使用 PostgreSQL 数据库在 PHP 中构建它,可选择使用 Doctrine 作为 ORM/DBAL。