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

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

QA

SIR 제작의뢰 - 견적무료/익명보정/호스팅, DB 이전/단기개발. 이젠 ' 의뢰인'이 원하는 '제작자'에게만 연락처를 알릴 수 있습니다.

데이터베이스 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(외래키) 둘다 설정하시면 됩니다
답변을 작성하시기 전에 로그인 해주세요.
전체 82,810 | RSS
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

진행중 포인트경매

  1. SIR 코스터 (컵받침)

    참여24 회 시작20.01.17 14:03 종료20.01.22 14:03
  2. SIR 기념구 (a.k.a 냑성구)

    참여41 회 시작20.01.17 13:57 종료20.01.22 13:57

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT