그누보드 DB 구조에서 foreign key를 mb_id로 하는 특별한 이유가 있을까요 ?

그누보드 DB 구조에서 foreign key를 mb_id로 하는 특별한 이유가 있을까요 ?

QA

그누보드 DB 구조에서 foreign key를 mb_id로 하는 특별한 이유가 있을까요 ?

본문

안녕하세요?

개발을 배우고 있는 학생입니다!

그누보드를 통해 사이트를 개발하다가 갑자기 궁금한 것이 생겨서 문의드립니다.

 

그누보드의 DB 구조를 보시면,

g5_board_good,

g5_scrap,

g5_write_게시판들..

g5_point

등등 모든 테이블에서 mb_id를 foreign key로 하여 g5_member와 join하도록 되어 있습니다.

 

실제 g5_member의 primary key는 mb_no 이고, 

 

또 g5_write_게시판들.. 등등 모든 테이블에서 mb_id를 저장하는 것 보다

mb_no를 저장하는 것이 더 효율적이라고 생각이 돼서요..

 

결국 궁금한 것은, 각 테이블에서 mb_no 말고 mb_id를 저장하는 특별한 이유가 있나 해서요..

 

혹시 특별한 이유가 있는지 궁금하여 여쭤봅니다!!

이 질문에 댓글 쓰기 :

답변 5

mb_id를 foreign key로 하여 g5_member와 join하도록 되어 있습니다

<---그렇지 않습니다 위에 나열한 테이블들은 전혀 회원테이블을 조인하지않습니다

(join을 사용하는 테이블은 메모테이블, 접속자 테이블 등 극히 일부 입니다)

join을 사용해서 좋을 것이 별로 없을테니 되도록이면 join을 사용하지않는 방법으로

mb_id를 기록하는 것이 아닌가 싶습니다

 

게시판의 경우를 생각해보면 mb_no를 기록해서 아이디를 찾아오는 것보다 그냥 아이디 및 이름을 게시물 마다 기록해 두는 것이 더 효율적으로 보입니다만...

 

보통 다른 DB는 number를 index해서 찾아오는 구조가 많은데..

 

그누보드는 아이디를 직접 index하는 구조입니다.

 

좋은점은 DB를 보고 있으면 바로 알수 있다는 거죠..

 

테이블 안에 아이디(mb_id) 패스워드(wr_password), 별명(wr_name)등이 직접 들어가 있으니..

 

처리하기에는 편한것 같습니다. (이해하기도 편하고..)

 

단점은 글쎄요..  옛날 같으면 선배한테 맞아 죽었을 것 같습니다. 

DB 의 relation 에서는 기본적으로 위의 외래키를 따로 기입하지 않아도 자동 기입됩니다...

 

자동 기입된다는 의미가 무엇이라면..

어떠한 행위를 위해 insert 를 시도 할 때 각 테이블마다 해당 아이디를 입력하는게 아니라

하나의 아이디를 가지고 다수를 입력 할 수 있습니다.

 

바꿔말해 참조키 = 외래키 를 통하여 각각의 테이블을 연결하여 사용할 수 있다는 겁니다.

참조키는 NULL  일 수 있지만 기본키는 NULL 이면 안되지요.

이게 가장 큰 부분입니다.

역시 DB구조는 어려운 것 같습니다. 별것 아닌것 같지만. (노래 썸처럼) 어떤 구조로 만드느냐가 가장 중요한 것 같습니다. 워드프레스나 드루팔8 같은 구조도 있고,  그누보드 구조도 있고..

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

회원로그인

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