본문 바로가기
Game Programming

MSSQL Cascade Update

by 게임혼 2007. 7. 12.
사용자 삽입 이미지

DB는 무수한 음식이 올려진 테이블들이 나열된 레스토랑과 같다. 음식은 컬럼이고

테이블은 테이블이다. 각 테이블에는 사과와 배등 과일이 나열되었다고 보자. 분명

이들은 독립적이다. A테이블의 사과와 B테이블의 사과는 다른 사과인 것이다.

그런데 조리장의 실수로 병든 사과가 올라갔다고 생각해보자 이 사과는 겉은

멀쩡하지만 속은 이미 맛이간 사과들이라고 할 수 있다. 그럼 조리장은 이를 매니저에게

보고하고 매니저는 테이블에 올라간 모든 사과를 고급의 사과로 다시 바꾸기 위해 웨이터

들에게 각 테이블에 있는 사과의 교환을 명령한다. 그런데 그만 실수로 웨이터가

테이블 하나를 빼먹는다면 분명 그 해당 테이블에서는 손님이 화를 낼 것이다. DB에서도

마찬가지이다. 잘못된 데이터의 변경은 매우 중요한일이고 해당 데이터는 유기적으로

연결되어 있어야 한다. 이를 위해 DB에서는 Cascade 가 있다. 먼저 A테이블의 a컬럼이 있고

B테이블에도 a컬럼이 있다고 하자 그럼 A와 B중 Primary가 될 테이블을 지정하자 여기서

A를 프리머리로 잡는다면 A테이블의 a컬럼이 프리머리 유니크 선언이 되어야하고 릴레이션쉽

을 통해 A.a 가 프리머리 B.a가 Foreigh으로 지정되야한다. 그리고 끝으로 입력과 수정이 일어

났을 때 Cascade 수정, 또는 삭제가 일어나게 옵션을 지정해주면 된다. 수정으로 지정했다면

사용자가 A.a의 값을 수정할 때마다 B.a의 값도 같이 변경될 것이다. 다만. A.a 와 B.a 모두 이미

공통된 값을 인자로 가지고 있어야 한다.

 

www.gamehon.com

'Game Programming' 카테고리의 다른 글

심심풀이 배선게임~  (0) 2007.08.28
다시 손 잡은 게임.  (0) 2007.07.25
shared_ptr boost 라이브러리  (0) 2007.06.14
포인트 툴  (0) 2007.05.24
평면상에서 사이각 구하기.  (0) 2007.05.19