드로우홀릭 더베이직
실무액세스2 강좌를 듣고 있는 직장인입니다.
전표번호를 부여하고 있는데요.
날짜별로 특정규칙을 적용하여 전표번호를 부여하고 싶습니다.
(앞에는 전표일자_YYYYMMDD / 뒤에 네자리는 1000 으로 시작해서 하나씩 숫자가 증가하는 규칙을 적용하고 싶습니다.)
예시 >
전표번호: 201801231000 201801231000
전표번호: 201801231001 201801231001
전표번호: 201801231002 201801231002
전표번호: 201801231003 201801231003
전표번호: 201801241004 (삭제일경우) X
전표번호: 201801231005 201801231004
하나의 레코드를 삭제해도, 전표번호가 자동으로 바뀌게끔 하고싶은데요.
Q. 전표번호를 DIM 으로 지정해서 할 수 있는 방법이 없을까요?
구글에서 검색하다가 채번에 대해서도 알게되었는데요.
Q. 저렇게 번호를 부여하려면 채번을 이용해야 하나요?
튜터링으로 여쭤봐도 되나요???
어려운 부분인 것 같은데, 답변 부탁드립니다.
일단, '하나의 레코드를 삭제해도, 전표번호가 자동으로 바뀌게' <-- 이것을 지원하는 DB 시스템은 없습니다.
엑셀에서는 이런것이 간단히 구현되었을지 모르겠습니다만..
DB에서는 동시에 여러 사용자가 이용하는 것을 고려해 보면, 이런 것이 불가능하다는 것을 알 수 있을 것입니다.
전표를 동시에 여러 사람이 입력한다고 가정해 보세요. 위와 같은 로직이라면, 거의 비슷한 시간에 입력할 때, 같은 번호가 발생되는 것을 피할 수 없습니다.
그래서 DB에서는 '한 번 나온 번호는 다시는 나오지 않도록' 하는 로직으로 처리하지요. 설명드리기 복잡하지만, 여기에 '트랜잭션'이라는 개념까지 더해지만, 거의 비슷한 시간에 입력하더라도, 한 번 나온 번호는 다시 나오지 않습니다.
그런데 이런 원칙의 문제는.. 중간에 데이터가 삭제되면, 그 번호가 다시는 나오지 않는다는 데 있습니다.
이런 원칙으로 번호를 발급하는 것을 '채번' 이라고 합니다.
이것은, 별도의 채번 테이블을 만들어 두고, 전표 입력시 채번 테이블에 새 값을 생성한 후, 그 값을 이용해서 자동 입력되도록 구현해야 하는데, 게시판 Q/A 에서 답하기는 좀 내용이 많습니다.
튜터링으로 질문하시면 좋을 것 같습니다.