안녕하세요..
예를 들자면 파이어버드(인터베이스) 같으거에 보면
create table test(
seq int,
price int,
quantity int,
tot computed by(price * quantity)
);
이렇게 하면 tot 필드에 자동으로 값이 계산되는데.. oracle/postgresql 엔 관련 내용이 있는지점..??
그럼..수고하시구여..?
test라는 테이블에서 tot라는 필드를 빼고 만드신 후 같은 내용의 view를 만드실 때 tot라는 필드를 추가 하시면 되겠습니다..
RULE이라는 것을 이용하셔도 되겠습니다.
자세한 내용은 메뉴얼의 RULE 부분을 보시면 됩니다.
여러가지 방법이 있군요. 장난 삼이 몇가지 더 생각하면...
음냐... 굳이 하겠다면 tot라는 컬럼을 만들어 놓고 insert나 update시 트리거로 계산해서 미리 결과를 저장해 놓는 방법도 있겠네요. 하지만 저장공간만 차지하고 속도에 별 도움이 안될듯...
저라면 그냥 쿼리문에서 price*quantity as tot로 얻어오겠습니다. 필요 없는 view나 rule은 안 만드는게 정신 건강에 이로워서요.
가장 좋은 것은 그냥 price와 quantity를 읽어와서 프로그램에서 tot 값을 얻는 것... 우하하하.... DB를 너무 불쌍히 여기는 마음에 가능하면 단순일만 시킨답니다.
ㅎㅎㅎ 전 DBMS를 혹사시키는 -_-;
테이블 만들고 나면 항상 같은 구조라도 뷰를 맹글어서 룰로 싱크시키고 어플에서는 실제 테이블에 접근 자체를 막아버립니당.. 완전히 구조가 같거나 보여줄 내용이 같은건 얼마 안되지만;;
덕분에 뷰 갯수가 테이블의 거의 두배 정도.. 음 -.-
개인적인 생각으론 computed라는 기능이 왜 필요한지 모르겠네요...
머.. 뷰도 있고.. select할때 계산해도 되고.. rule도 있고....
그냥 쉬운 방법으로 하는게 최선의 방법인듯 합니다.