토픽 개선이 필요한 그누보드 데이타베이스 구조
페이지 정보
본문
RESTful를 하기 위해서 직접 그누보드의 데이타 베이스를 읽어 오면서,
발견한 개선이 필요한 것들입니다. (각각의 장단점이 있기는 하겠지만.)
1. 멤버 이미지/아이콘을 가져오기
멤버 이미지와 멤버 아이콘은
data/member_image/mbId{첫두자}/mbId.[gif,jpg,png]
data/member/mbId{첫두자}/mbId.[gif,jpg.png]
에 파일이 있는데, 이것을 아이디를 가지고 파일 패스를 계산합니다. 그리고 가능한 확장자가 gif, jpg, png 3개 이다 보니,
매번 읽어올 때 마다 체크해야 됩니다.
데이타베이스에 필드를 추가해서 저장해 놓으면 편할 것 같습니다.
2. 메뉴 코드
메뉴의 단계별 구분을
me_code가 1단계는 2자리이고 2단계는 4자리로 되어 있습니다.
1단계가 "10"이라고 하면 서브 메뉴는 "1010", "1020", "1030"으로 되어 있습니다.
이것도 쪼개서 읽어야 되는 불편함이 있고, 3단계등으로 확장시에도 문제가 있을 것 같습니다.
데이타베이스에서 어떤 구조를 가져가야 될지 고민해 봐야겠습니다.
3. 게시판 글(자유게시판, g5_write_free)과 보드(g5_board)의 관계
g5_board와 g5_write_free의 관계는 g5_board에서 bo_table을 읽어서 데이타베이스의 테이블 이름을 만들고 (g5_write_[bo_talbe]) 그 테이블을 읽어서 가져오는 구조입니다.
3-1. 스크랩에서
g5_scrap를 읽어서 글의 제목과 게시판을 뿌려 줄려면, bo_table을 가지고 g5_board에서 읽고(이것은 JOIN이 가능?)
g5_write_[bo_table]을 만들어서, 해당 글의 제목을 가져와야 됩니다.
프로그램적이나, 나중에 확장을 위해서 g5_write_[bo_table] 에 bo_table이나 bo_id(g5_board에 없음)로 연결이 되어야..
4. 답변글/댓글
wr_reply, wr_comment_reply에 종속성을 "AAAAAA"으로 되어 있는 것을 (댓글에 댓글은 "ABC"등으로) 개선이 필요합니다.
https://www.youtube.com/watch?v=7Gj_zWCHTIk
https://www.smashingmagazine.com/2012/05/building-real-time-commenting-system/
5. 카테고리의 구조
g5_board의 bo_category_list와 g5_qa_conifg의 카테고리가 "그누보드|영카트|RESTful" 식으로 데이타베이스 그대로 저장되어 있는데
별도 데이타베이스 테이블 구조로 처리하면, sql에서 한번에 읽어올수 있을 것 같음.
6. 테이블 인덱스 번호
각 테이블에 자동 index가 빠져있는 것들에 추가 필요 (자동으로 증가되는 id 번호)
7. MySQL Set Datatype
Set Datatype이 mysql만 지원함. (앞으로 대세가 되어 가는 JSON타입은??)
g5_write_[bo_table]에 있는 ,wr_option에 html1, html2, seret, mail 이 들어가는데
비밀글이면 html1, secret, DHTML을 사용안하고, html 체크하면 html2, 답변메일 체크는 mail이네요
없으면 일반텍스트, html1, html2, markdown등...
별도 필드에 secret 옵션을 wr_secret,
mail은 wr_mail로..
8. 공지글..
g5_board의 bo_notice에 해당 공지글 번호가 들어가 있음. 일일이 비교해야 됨.
별도 필드로 wr_notice로 boolean으로..
데이타베이스를 보다보니, 아주 옛날에 z80시스템에서 데이타베이스 프로그램하던 기억이..
데이타베이스가 한 바이트 증가는 = 돈 이라고 해서, 얼마나 잘 줄이느냐가 이슈였죠.
현재의 추세는 어느쪽인지 모르겠지만, sql 기능을 더 활용하는 쪽이 아닐지..
mysql 8 이나 PostgreSQL의 최신 버전은 JSON 타입으로 저장도 되는 것 같습니다.
댓글목록
등록된 댓글이 없습니다.