시간이 지남에 따라 엔티티와 릴레이션을 저장하는 시스템을 설계하는 중입니다.PostgreSQL 데이터베이스에서 PHP와의 엔티티 관계 버전 관리
각 엔티티에는 속성이 있으며 각 속성의 버전을 지정해야합니다. 따라서 엔티티의 속성이 변경되면 새로운 기록 상태가 추가됩니다. 복잡성은 별도의 엔트리 간의 관계를 버전화해야한다는 사실에도 있습니다. 예 : 엔터티 A
이 부모 X
에서 부모 Y
으로 이동하면 두 엔터티의 관계도 새로운 기록 상태가됩니다.
낮은 수준에서이를 디자인하는 방법에 대한 조언을 찾고 있습니다. 이런 종류의 패턴이나 다른 모범 사례/입증 된 방법에 사용할 수있는 디자인 패턴이 있습니까?
나는 선택적으로 Doctrine을 ORM/DBAL로 사용하여 PHP로 PostgreSQL 데이터베이스를 구축하고 있습니다.
저는 항상 트리거와 같은 것을 만들었습니다. 당신은 동시성 문제에 관해 꽤 열심히 생각할 필요가 있지만, 당신이 어떤 수준의 작업을하고 있더라도 그렇게해야합니다. 종종 부모와 자식 객체에 관한 것들을 잡기 전에 이상한'SELECT .. FOR SHARE' 만 필요합니다. –
여기를 한번보세요 : https://github.com/simplethings/EntityAudit – Florian
참조 : http://en.wikipedia.org/wiki/Slowly_changing_dimension –