데이터베이스 SQL 제약조건 질문입니다.

데이터베이스 SQL 제약조건 질문입니다.

QA

데이터베이스 SQL 제약조건 질문입니다.

본문

부서 부서이름 담당 카테고리        
관리자 관리자ID 관리자 이름 담당 부서      
DB게시판 게시판 No. 글제목 글내용 카테고리 회원ID 관리자ID

 

관리자는 담당 부서를 가지고 있고

담당 부서는 맡은 담당 카테고리가 있습니다.

 

DB게시판에서 해당 글에대한 카테고리를 설정 후 관리자ID를 외래키로 넣어주는데

만약, 게시판의 해당 카테고리가 관리자의 담당이 아닐경우 값을 넣지 못하게 되는데

 

이럴경우 SQL에서 제약조건을 어떻게 줘야하나요??

 

또한 DB게시판의 카테고리도 부서에 존재하는 담당 카테고리만 삽입이 되어야하는데 그냥 외래키로만 가능한가요??

이 질문에 댓글 쓰기 :

답변 1

3547229314_1575781136.1103.png

 

카테고리 담당자 엔터티가 필요합니다.

관리자ID와 카테고리ID 2개를 묶어서 PK로 구성(이런걸 복합키라고 합니다)후에, DB게시판에서 FK로 참조하면(복합 외래키로 세팅) 됩니다.

 



FOREIGN KEY(관리자ID, 카테고리ID) REFERENCES 카테고리_담당자(관리자ID,카테고리ID)

 

 

감사합니다!!!

 

복합키로 기본키를 구성하려면 [CONSTRAINT 기본키이름 PRIMARY KEY (컬럼1, 컬럼2)] 이렇게 해줘야 하지 않나요??

 

외래키로만 이루어져있으면 따로 기본키는 설정안해줘도 되나요??

CONSTRAINT 기본키이름 PRIMARY KEY (컬럼1, 컬럼2) ==> 맞습니다.
위는 외래키 세팅한 것이고, 기본키로도 지정해주는게 좋습니다.(위 ERD에서 #표시가 기본키를 나타내는 겁니다.)
그래야 인덱스 면에서 완벽해집니다.
PK(기본키) / FK(외래키) 둘다 설정하시면 됩니다

답변을 작성하시기 전에 로그인 해주세요.
전체 16,737
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT