2017-10-20 21 views
4

내 데이터베이스에는 각 행이 엔티티를 나타내는 테이블이 있으며 동일한 엔티티가 여러 번 나타날 수 있지만 최신 항목 만 유효한 엔티티가있는 다른 테이블이 있습니다.마지막 값만 사용해야하는 테이블을 설명하는 용어가 있습니까?

예를 들어, 각 행은 고객을 나타내며 동일한 고객이 여러 번 참조 될 수있는 customer_membership_status 테이블이 있지만 각 고객의 마지막 레코드 만 사용하는 것이 좋습니다. 테이블 customer이 있습니다. customer_membership_status에서 데이터가 업데이트되지 않으며 삽입 만됩니다.

이 패턴을 설명하는 용어가 있습니까? 나는 다른 사람들에게 표의 의도 된 사용을 쉽고 빠르게 설명하기를 원하기 때문에 묻습니다.

+0

이벤트 소싱, 로깅, 쓰기 전용, 버전 관리 – lad2025

답변

2

아마 가장 좋은 용어는 CQRS하고 event sourcing

오히려 시점에서 실제 데이터보다, 쓰기 저장소로 이벤트 스트림을 사용하는 것, 하나의 집계에 업데이트 충돌을 방지하고 성능을 극대화 대신 도메인에있는 데이터의 단지 현재 상태를 저장하는 확장 성

이벤트 소싱 패턴

은 행동의 전체 시리즈를 녹화하기 위해 추가 전용 저장소를 사용 그 데이터를 취한 것입니다. 저장소는 레코드 시스템으로 작동하며 도메인 개체를 구체화하는 데 사용할 수 있습니다. 따라서 성능, 확장 성 및 응답 성을 향상시키면서 데이터 모델과 비즈니스 도메인을 동기화 할 필요가 없으므로 복잡한 도메인의 작업을 단순화 할 수 있습니다. 또한 트랜잭션 데이터에 대한 일관성을 제공하고 보상 작업을 수행 할 수있는 전체 감사 추적 및 기록을 유지 관리 할 수 ​​있습니다.

편집 :

자세히 살펴 후, 당신은 또한 읽을 수 있습니다에 대한 SCD(Slowly Changing Dimension) 유형 2.이 방법은 차원 테이블에 주어진 자연 키에 대한 여러 레코드를 작성하여 기록 데이터를 추적

별도의 대용 키 및/또는 다른 버전 번호가 있어야합니다. 각 삽입물에 대해 무제한 히스토리가 보존됩니다.

+0

'고객'패턴의 이름은 무엇입니까? 평범한 ** 테이블로만 언급하는 것이 맞습니까? – Marcos

0

시간표. 타임 스탬프/버전 속성이 키의 일부인 테이블입니다. 시간/버전 속성을 사용하면 각 고객에 대한 최신 행을 식별 할 수 있습니다.