데이터베이스 SQL 제약조건 질문입니다. 채택완료
노마마
5년 전
조회 2,903
| 부서 | 부서이름 | 담당 카테고리 | ||||
| 관리자 | 관리자ID | 관리자 이름 | 담당 부서 | |||
| DB게시판 | 게시판 No. | 글제목 | 글내용 | 카테고리 | 회원ID | 관리자ID |
관리자는 담당 부서를 가지고 있고
담당 부서는 맡은 담당 카테고리가 있습니다.
DB게시판에서 해당 글에대한 카테고리를 설정 후 관리자ID를 외래키로 넣어주는데
만약, 게시판의 해당 카테고리가 관리자의 담당이 아닐경우 값을 넣지 못하게 되는데
이럴경우 SQL에서 제약조건을 어떻게 줘야하나요??
또한 DB게시판의 카테고리도 부서에 존재하는 담당 카테고리만 삽입이 되어야하는데 그냥 외래키로만 가능한가요??
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
5년 전

카테고리 담당자 엔터티가 필요합니다.
관리자ID와 카테고리ID 2개를 묶어서 PK로 구성(이런걸 복합키라고 합니다)후에, DB게시판에서 FK로 참조하면(복합 외래키로 세팅) 됩니다.
</p>
<pre>
<code>FOREIGN KEY(관리자ID, 카테고리ID) REFERENCES 카테고리_담당자(관리자ID,카테고리ID)</code></pre>
<p><code>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
노마마
5년 전
�
그라나다
5년 전
CONSTRAINT 기본키이름 PRIMARY KEY (컬럼1, 컬럼2) ==> 맞습니다.
위는 외래키 세팅한 것이고, 기본키로도 지정해주는게 좋습니다.(위 ERD에서 #표시가 기본키를 나타내는 겁니다.)
그래야 인덱스 면에서 완벽해집니다.
PK(기본키) / FK(외래키) 둘다 설정하시면 됩니다
위는 외래키 세팅한 것이고, 기본키로도 지정해주는게 좋습니다.(위 ERD에서 #표시가 기본키를 나타내는 겁니다.)
그래야 인덱스 면에서 완벽해집니다.
PK(기본키) / FK(외래키) 둘다 설정하시면 됩니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
복합키로 기본키를 구성하려면 [CONSTRAINT 기본키이름 PRIMARY KEY (컬럼1, 컬럼2)] 이렇게 해줘야 하지 않나요??
외래키로만 이루어져있으면 따로 기본키는 설정안해줘도 되나요??