기본적으로 서비스, 쿼리 등을 구성할때는 확장성을 고려해서 구성하도록 한다.
■ 단순히 base_date가 아닌 시작날짜, 종료날짜를 이용해서 날짜 INPUT값을 입력
■ 이후 추가적으로 입력값을 받는다고 할때 현재의 쿼리 구성을 바꾸지 않고 입력받을 수 있는 방안을 고려하면서 구성(확장성, 유연성)
■ struct 구성시 확장성을 위해 모든 입력값을 구성할 수 있겠으나, DB ERROR 발생시 DBIO INPUT값과 일치시켜가면서 오류가능성을 줄일 수 있다.
■ sort_sqnc, ROW NUMBER의 값을 할때 활용하는 기준 COLUMN은 1개가 아닌 여러개가 될 수 있고, 입력순서대로 기준을 두고 일련번호를 설정하게 된다.
■ 확장성을 고려하여 -> where절에 문자열 입력받을때 웬만해서는 % || STRING || % 방식으로 구성(공란이 허용되어 입력값이 공란이 되더라도 오류가 발생하지 않는다), = 연산자를 사용하면 공란이 허용되지 않는다.
■ 날짜확장성 -> between
■ 어떤 PK를 구성해야하는지 인덱스 번호가 왜 필요한지도 잘 생각해본다.
→ 예를 들어 등록번호를 PK로 구성하게 되면 수정, 정정 등의 상황에서 등록번호가 같을 수가 없기 때문에 자유로운 수정과 정정 등이 가능해진다(업무분류일정코드 변경가능).
■ ROW NUMBER를 통해 기준을 설정하였을 경우, 조건절 하단에 별도로 ORDER BY를 작성하지 않아도 자동으로 정렬할 수 있다.