그동안 DB관리를 하면서도 등한시 했던 것 중 하나가 트리거(trigger)다.
비록 내가 DB관리자는 아니지만, 트리거는 많은 용도로 활용할 수 있다.
무엇보다 회원정보의 무결성!
회원을 등록, 삭제했을때? 관련데이터를 다 지워주나? 물론 다이어그램을 이용해서 값들을 연동시켜서 수정, 삭제시 같이 변경되도록 걸수도 있다. 하지만, 디테일한 설정을 하고싶다면, 트리거가 제격이다.
무엇보다 요즘 변경내역을 저장하는 방법으로 트리거를 거는것을 추천한다.
데이터의 변동이 생겼을때 (추가, 삭제 등) 트리거를 이용해서 작업과 동시에 이전기록을 백업테이블에 저장하는 방식이다. 혹은 재귀쿼리를 이용해서 테이블 내에서 변경시킬 수도 있다. 개인적으론 로그를 따로 저장하는게 나을듯하다. 관리가 편리하기때문이다. 물론 불러올때에는 두개의 테이블에서 불러와야 하지만, 인덱스를 잘 짜고, 뷰를 만들어놓으면 그리 로드가 걸리진 않을 것이라고 생각한다.
트리거는 분명 편리하다. 문제는 나와같은 개발자들은 소스에서 수정하려고 하지, DB에서 자동화작업 하는걸 잘 하지 않는다는 것이다.
나도 앞으론 되도록이면, 서버소스보단 DB와 클라이언트단에서 작업을 하도록 개발을 하려고 한다. 가장 믿을 수 있는 프로그램인 DB프로그램과 가장 성능 좋은걸 사용하는 DB서버에 중요한 작업을 맏기려고 한다.
그리고 서버단 소소는 길어질수록 많은 오류와 관리효율이 떨어진다..
순수한 웹개발자만 존재하기는 점차 어려워질 것이다.
Db와 클라이언트언어가 너무 뛰어나게 발전하고 있는 지금...그건 DB관리자가..그건 코더가...이렇게 하다간, 스스로의 실력도 늘지 않을 뿐더러 우물안 개구리만 될 것이라고 생각한다.....
'MSSQL' 카테고리의 다른 글
DB의 테이블들 용량분포를 출력하는 프로시저 (0) | 2012.06.28 |
---|---|
SQL INJECTION 확인위한 쿼리문 (0) | 2012.04.02 |
해당 월의 몇째주인지 알려주는 쿼리문 (0) | 2012.03.15 |
mssql2000에서 bak파일 복원할때... (0) | 2012.03.07 |
text 타입 컬럼을 replace 하는 방법 (0) | 2012.03.07 |