안녕하세요, 테이블 설계 시 문득 궁금해 져서 의견을 들어볼까합니다.
요즘 sns 관련 앱을 보면 (물론 일반 게시판도 마찬가지겠지만...) 게시물에 관련된 댓글이나 컨텐츠(이미지, 영상)들이 n개가
저장이 되는데....
아래 테이블이 있다고 가정하면, key를 어떻게 하는 것이 더 효율적인지 어드바이스 좀 부탁드리겠습니다.
게시글 (일련번호, 제목, 글쓴이,등록일자) 테이블 (parent)
컨텐츠(일련번호, 타입, 댓글or파일명) 테이블 (child) .... 대략 이정도로.. ^^;
parent테이블에 PK는 게시글.일련번호가 되겠죠? ** 일련번호는 모두 identity(1,1) 일경우
case 1) child 테이블에 PK는 (게시글.일련번호(FK), 컨텐츠.일련번호)로 된 복합키로 구성
case 2) child 테이블에 PK는 컨텐츠.일련번호만 단일 PK로 구성 (게시글.일련번호는 당근 FK)
case 3) 위 케이스말고 더 좋은 방법안 (예를 들면, identity 컬럼을 한쪽만 구성하거나...기타 등등 ^^;)
이상입니다.
사실 제가 쓰는 방법은 주로 case2)를 사용했는데, case 1) 도 해봤다가
어차피 child의 컨텐츠.일련번호도 identity(1,1)이기에 굳이 복합키로 구성할 필요가 없어서 2방식을 선호했거든요.
고수분들의 의견 부탁드리겠습니다.
감사합니다.
Comment 1
-
하하하하하
2013.10.22 09:00
저도 2번으로 하고 다른 컬럼에 부모글번호를 가지고 있게 하고 있긴한대
굳이 부모글번호까지 같이 pk로 설정할 필요가 있나요??