행위

"이력관리 점이력 선분이력"의 두 판 사이의 차이

DB CAFE

(이력 관리 모델)
(이력 관리 모델)
1번째 줄: 1번째 줄:
 
== 이력 관리 모델 ==
 
== 이력 관리 모델 ==
https://mblogthumb-phinf.pstatic.net/MjAyMDAyMDNfMTQ0/MDAxNTgwNzEwOTU3MTUx.469Z4rB9aQzSm8ZpF1Bus-BvuNC4weZ1waC6W8iJkUIg.Ddxn6X6gREtpK8VgGSSRVqzhuCDSeM41IccQOlDDr0Mg.JPEG.l1523/SE-c677ed84-f19b-4ebe-893a-69fde9916d8a.jpg
+
https://mblogthumb-phinf.pstatic.net/MjAyMDAyMDNfMTQ0/MDAxNTgwNzEwOTU3MTUx.469Z4rB9aQzSm8ZpF1Bus-BvuNC4weZ1waC6W8iJkUIg.Ddxn6X6gREtpK8VgGSSRVqzhuCDSeM41IccQOlDDr0Mg.JPEG
  
 
== 점이력 ==
 
== 점이력 ==

2024년 2월 20일 (화) 06:37 판

thumb_up 추천메뉴 바로가기


1 이력 관리 모델[편집]

MDAxNTgwNzEwOTU3MTUx.469Z4rB9aQzSm8ZpF1Bus-BvuNC4weZ1waC6W8iJkUIg.Ddxn6X6gREtpK8VgGSSRVqzhuCDSeM41IccQOlDDr0Mg.JPEG

2 점이력[편집]

  • 선분 이력이 사용될 때는 계약기간, 운영기간 같은 종료시점이 필요한 데이터 관리

https://mblogthumb-phinf.pstatic.net/MjAyMDAyMTBfMTE2/MDAxNTgxMzAyNTAxMDI2.48ApcDbU4x1Y0_ZEF-uiDJkt3xiQn39Gx0Sz9Fgu3Y0g.EGiU9yFdRw-T9lZt8xYin4PGWzCXBbbvNzo7CweCkrAg.JPEG.l1523/SE-ac1bb972-6127-4ec8-8a96-68defc64f3ef.jpg?type=w800

2.1 점이력 장단점[편집]

  1. 점 이력은 변경 시점의 데이터를 넣는 과정에서 종료시점을 계산해서 넣을 필요가 없기에 훨씬 편합니다.(날짜 컬럼 1개로 관리)
  2. 선분 이력에서는 인덱스 스캔 시 (종료일자 + 시작일자)가 효율적이었지만 점 이력에서 종료일자가 없음
    1. 그럼 성능이 좋지 않을 것이다? 라고 생각할 수 있지만 시작일자만으로도 좋은 효율을 볼 수 있습니다.

3 선분이력[편집]

https://mblogthumb-phinf.pstatic.net/MjAyMDAyMTBfMTM3/MDAxNTgxMzAyNTEyNzI3.bAE6CdbSDSR_bxJHOG6cRKKwupvbe0xgQukz7PACVr8g.bIUgt9fHUoXHVzBEoDa7KRmyNXwe-omLiTyr-EdQDMcg.JPEG.l1523/SE-6da8b8f2-1eca-4932-92cd-177da1f9f02c.jpg?type=w800

3.1 선분이력 장단점[편집]

  1. 선분 이력 모델에서 종료시점을 NULL 허용 하면 BETWEEN 조건으로 조회시 나오지 않음
  2. 종료 시점이 미정일 경우 NULL로 두는게 맞지만 인덱스 사용이 불가능하기 때문에 인덱스 스캔을 고려한다면 '9999-12-31' 같이 값을 정해두는 것이 좋음.
    1. 종료시점 미정 (NULL 허용) : 현재시점 데이터 조회 시
--  시작시점 <= '2020-01-25' <= 종료시점
    '2020-01-13' BETWEEN ST_DT AND ED_DT (종료시점이 NULL인 데이터는 조회 안됨)
​
    1. 종료시점 미정 '9999-12-31' (NOT NULL) : 현재시점 데이터 조회 시
--  시작시점 <= '2020-01-25' <= 종료시점
  '2020-01-13' BETWEEN ST_DT AND ED_DT (현재시점 데이터 조회 가능)
  • 최종 변경건 데이터 조회 시 ED_DT = '9999-12-31' 로 빠르게 사용 가능
  또한, 인덱스(종료일자 + 시작일자)를 사용하면 인덱스(시작일자 + 종료일자) 보다 효율적으로 데이터 조회 가능