by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

12.4 이력 관리 모델 유형




12.4 이력 관리 모델 유형

엔터티 하나로 현재와 과거 데이터 관리

  • 데이터 모델을 관리하기도 편하며 개발하기에도 편하고 데이터를 생성시키기도 편하다는 장점
  • 왼쪽 모델은 하위(자직) 엔터티를 가질 수 없으므로 모델의 확장성이 떨어진다.
하위(자식) 엔터티와 관계가 끊어진 릴레이션- 잘못된 경우

주문 이력 엔터티와 릴레이션 - 바른경우

엔터티 하나로 관리되는 경우

  • 이런 종류의 엔터티는 대부분 하위(자식) 엔터티와 참조 무결성(RI) 관계가 성립하지 않는다.
  • 엔터티에서 과거와 현재 데이터를 관리할 때는 엔터티명에 '~이력'을 시용하지 않는 것이 일반적이다
    (과거의 데이터를 별도로 관리할 때만 엔터티명에 '~이력' 을붙인다 )

두 개의 엔터티에서 현재와 과거 데이터 별도로 관리

  • 보험계약 엔터티에 현재상태만 존재하므로 과거 내역을 같이보려면 UNION등의 비효율 발생

변경 속성을 별도의 엔터티로 관리

  • 계좌비밀번호 이력 엔터티에서는 과거의 비밀번호만을 관리한다.
  • 데이터 값은 중복되지 않더라도 데이터 모델의 속성 중복이 발생
  • 현재의 비밀번호가 거의 일방적으로 사용된다는 점에선는 바람직하다.
  • 특정 시점의 비밀번호가 무엇이었는지를 조회히는 요건이 있을때 유리
  • 변경일자 대신 시작일자,종료일자 속성(선분이력)으로 효율적으로 조회할수있다.

모든 변경 속성을 하나의 통합 엔터티로 관리

  • 코드컬럼은 속성코드와 속성명으로 데이터 일치 필요
  • 성능 문제 발생하면 snap shot방식을 이용.

유사한 변경 속성들을 묶어서 별도의 엔터티로 관리

  • 보험계약 이력을 날짜변경속성과 금액관련속성을 분리
  • 변경된 속성조회도 쉽고 모델의 확장성도 좋아진다.
  • 엔터티가 늘어나는 단점이 존재.

정리

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.