테스트 사이트 - 개발 중인 베타 버전입니다

그누보드 외래키

· 13년 전 · 1178 · 6
안녕하세요
 
그누보드를 기본적으로 설치하고 DB를 보면,
 
g4_point 같은 테이블이 mb_id 같은 필드가 외래키 등록 같은 것을 안해놨던데.
 
원래는 g4_member 테이블에 mb_id 필드에 외래키로 등록을 하는 것이 맞는 것 아닌가요?
 
기본적으로 안 되있는 것은 보통 개발자들이 외래키를 선호하지 않기 때문인가요?
 
어떤 이유일까요.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

13년 전
게시글을 보고 그누보드 인스톨 버젼을 보니 Foreign key 는 따로 잡혀있지 않네요

데이타베이스 의 참조 무결성 측면에서 봤을때 테이블이 두개이상 관계설정이 될때
Foreign key 설정이 되어야 하는게 맞습니다.

이부분은 리자님께서 답변을 해주지 않을까 싶습니다.

그리고 개발자들이 외래키를 선호하지 않는것 보다는 실무에서는 정규화 를 원론대로 지켜서 쓰기에는
개발 시간이 부족한 측면이 있는거 같습니다.

원론적으로는 데이타베이스 정규화를 따라서 해야 하지만 저같은 경우에도 테이블 구성시에
1~3 정규화 까지만 쓰고 있고요..

제가 생각할때 외래키나 관계설정 측면에서 그누보드가 신경이 많이 쓰이신다면

인스톨 전에 테이블 관계설정 부분을 수정해서 쓰시는 것이 좋을꺼 같습니다
그냥.. 자유롭게 풀어놓은거죠.

이론상으로는 ERD그리고 선연결하는게 맞으나 안그렇게해도 운영에 문제가 없죠.
대부분의 웹호스팅용 mysql 스토리지엔진이 myisam 기반이기 때문에,
그누보드에서는 myisam만 기준한 것으로 보입니다.
또 일반 홈페이지 게시판용 으로는 myisam이 맞는듯 하고요..

외래키를 사용하려면 innodb를 사용하여야 합니다.
외래키 적용하면 초보자들이 좀 헤멜껍니다.
디비에서 직접 뭔가를 delete 하면 에러가 벅벅 날테니 말이죠. 쿼리짜는것도 신경써야되고..
데이터 무결성을 위해서는 외래키를 잡는게 맞습니다.
12년 전
커뮤니티는 무결성 풀어놔도 문제 없습니다.
영카트는 무결성 들어가는게 맞는것 같은데, 그당시 대부분 myisam을 쓰고 있어서 넣지 않은것 같습니다.

게시글 목록

번호 제목
32341
32339
32326
32325
32322
32319
32318
32316
32315
32313
32312
32311
32310
32304
32303
32300
32293
32292
32291
32285
32284
32275
32271
32268
32265
32261
32258
32257
32255
32254
32253
32251
32250
32249
32247
32246
32245
32244
32243
32242
32241
32240
32239
32238
32237
32236
32232
32229
32228
32227
32217
32215
32214
32213
32211
32207
32196
32193
32192
32190
32188
32186
32184
32173
32172
32171
32167
32165
32163
32162
32158
32157
32155
32151
32149
32135
32132
32127
32125
32122
32120
32119
32117
32116
32115
32114
32112
32111
32109
32107
32104
32103
32102
32101
32094
32089
20404
31036
8279
8268