음..제목 그대로 테이블들 사이에 외래키를 지정하나요?
참조무결성이나 개체무결성을 하기 위해서는 사용해야 할꺼 같은데..
사용을 해야하는건지 아니면 사용을 안해도 무방한건지..궁금하네요
댓글 5
-
e-abap
2008.01.28 21:22
-
Number 1 Channel
2008.01.28 21:30
아..단지 입력값 제한을 목적으로만 사용을 한다는 말씀이신가요?
그럼 테이블끼리의 관계는 어떻게 설정을 해야한다는 건가요?
음..만약에 1이라는 테이블이 있고 2라는 테이블이 있으면
1테이블에는 모든 고객의 정보가 담아져있다고 가정을 하고 2테이블에는 고객들이 주문한 내역이 담아져있다고 가정을 하면
1번 테이블에서 특정 고객의 정보를 지워버리면 2번 테이블에서도 1번 테이블에서 지운 고객의 정보가 지워져야 하지 않을까요?
음. 머 이거는 MS-SQL에서 연속삭제 연속 업데이트라는 구문을 쓰면 되긴 하지만
Abap에서는 어떻게 처리를 해야하는지...
-
해처리
2008.01.28 21:50
SAP에서는 대부분 지우는 경우는 없지 않나요?? 임시전표정도라면 몰라도..
마스터의 경우 삭제플래그나 유효기간을 두거나 트렌젝션일경우 취소로그를 남기거나..
-
e-abap
2008.01.28 22:35
SQL에서는 ABAP Dic 외부키가 설정되더라도 삭제가 됩니다.
CBO에서 삭제 로직은 마스터 데이터가 사용중이라면 삭제 되지 않도록 하는 체크가 먼저 필요하겠지요.
-
Number 1 Channel
2008.02.01 22:38
감사합니다
ABAP Dictionary 레벨에서의 외부키는 테이블 레벨이 아니라 스트린 레벨에서 입력값을 제한 하는 목적으로 사용됩니다.
즉, ABAP Dic에서 외부키를 생성했다고 해서 db레벨으 테이블에 외부키가 생성되는 것이 아니죠.
타 언어에서 테이블에 외부키를 설정하는 것보다는 그 중요성이 조금 떨어집니다.
어차피 프로그램에서 Validation을 수행할 것이기 때문에, 상황을 잘 판단하셔서 하시면 될것 같습니다.
물론, 프로그램 설계단계에서는 외부키 관계는 전체 프로세스를 이해하는 수단으로 아주 중요합니다.