오라클 flag란... 0 3 4,703

by ymym [2019.08.27 12:52:11]


오라클 flag의 개념에대해서 자세히 알려주세요..!!

erp 프로그램 만들면서 공부중인데 데이터를 삭제할때 제품코드나 제품명 같은 것들이 필요없으면 삭제해도 되겠지만 매출내역 같은경우는 삭제하더라도 완전히 삭제하면 안될 것 같아서요. 삭제할때 보관테이블을 만들어서 거기다가 insert먼저 하고 삭제하는 등 여러가지 방법이 있겠지만 물어보니까 flag를 둬서 사용자의 입장에서는 보이지 않게해서 관리한다고 하던데.. flag를 둔다는게 스위치 같은건가요? 여기서 사용하는 flag는 어떤의미로 사용될 수 있는건가요..?? 예시로 어떤 데이터를 flag..?로 숨기는 방법도 알려주시면 정말 감사하겠습니다!

by DarkBee [2019.08.27 13:47:50]

네 논리적인 삭제라고 해서 삭제 플레그 컬럼을 두는것이 일반적입니다.   삭제여부, 플래그구분코드, 사용여부   정도 속성으로 많이 쓰이고 있습니다.


by 우리집아찌 [2019.08.27 13:56:19]

FLAG 개념은 오라클이 아니라 모델링 개념으로 관점하셔야합니다.

예를 들어 볼께요

삭제가 보이지 않게 하고 싶다면 삭제여부 Y/N으로 구분해서 WHERE 삭제여부 = 'Y' 라 하면 삭제된 데이터는 안보이게되겠죠.

그런데 공통코드같은 테이블의 경우 실제 레코드를 삭제하게 되면 그것을 참조하는 TABLE의 데이터는 다 NULL로 나올겁니다. 그때 조회시 삭제여부를 WHERE에 쓰지 않고 JOIN 하면 이전 참조 데이터를 볼수있게 되겠죠.

 

 


by 마농 [2019.08.27 13:56:41]

1. 그냥 컬럼 하나 추가하는 것입니다.
  - 삭제여부, 출력여부, 상태코드 등
  - 단순 삭제 여부만 관리하므로 변경사항에 대한 이력관리 어려움.
  - 변경이 거의 발생되지 않는 코드 관리에 적합
  - 오라클과 무관합니다. 그냥 데이터 관리 기법?
2. 유효 기간으로 관리하기도 합니다.
  - 시작일 ~ 종료일
  - 변경관리 가능함
  - 구현이 복잡함.
  - 빈번하게 바뀌는 코드 관리에 적합

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입