[lavuebd]라라벨에서 사용할 DB 구조를 고려해보기 > PHP프레임워크

PHP프레임워크

[lavuebd]라라벨에서 사용할 DB 구조를 고려해보기 정보

라라벨 [lavuebd]라라벨에서 사용할 DB 구조를 고려해보기

본문

DB 구조 만드는 것이 아마 제일 힘들 것 같습니다.  

 

이 기초가 튼튼해야 앞으로 문제가 없을 같은데..

 

그래서 이것저것 보다 보니 ciboard 3.0 Pro의 구조를 참조로 하면 될 것 같습니다.

 

@terrorboy 님이 예전에 추천해 주신 https://sir.kr/cm_free/1445871   erdcloud.com 에

 

ciboard 3.0 pro에 대한 것이 올라와 있네요.

 

https://www.erdcloud.com/d/wNtbZdTQkjqehzKgn

 

먼저 글(post) 위주로 보면 gnuboard와 다르게 모든 글이 이 Table에 다 올라갑니다.

 

이 글의 글쓴이 (member) 와 이 글이 게시판(board)에 대해서 연결되어 있겠죠..

또한  댓글 (comments)도

 

"post" hasone or belongs to "member"

"post" hasone or belongs to "board"

"post" hasmany "comments"

 

hasone 이냐 belongsto냐는 https://stackoverflow.com/questions/30058949/should-i-use-belongsto-or-hasone-in-laravel

 

그래서 여기서는 belongsto 이네요.  board_id와 member_id가 post에 있기 때문에..

 

"member" hasmany "post"

"board" hasmany "post"

"comments" belongsto "post"

"comments" belongsto "board"

"comments" belongsto "member"

  의 Relation을 가지고 있을 것 같습니다.

 

게시판(board) 은 게시판 그룹(group)으로 연결 되어 있죠..

 

"board" hasone "group"

"group" hasmany "board"  

 

이런 연결로 하면 예전에 게시글 처럼 https://sir.kr/so_app/170

 

GET api/v1/group  전체 Group (즉 top 메뉴를 읽어오기)

GET api/v1/group/{group_id}  각 그룹에 속한 메뉴 읽어오기

GET api/v1/board/{board_id} 게시판 읽어오기 (list_skin)

GET api/v1/board/{board_id}/post/{post_id} 게시판 항목 읽어오기 (view_skin)

 

식으로 구현이 가능할 것 같습니다.  아니면 wordpress방식으로

api/v1/post?board={board_id}

 

그러나 magento의 api를 보면 https://devdocs.magento.com/guides/v2.3/rest/list.html

역시 대세는 전자가 될 것 같습니다.  

 

post 와 comment의 관계는 polymorphic으로 연결된다고 합니다. (추후에 더 공부해야..)

그리고 comment와 comment는 reply기능이 되어야 되니  이것도 나중에

추천
1
  • 복사

댓글 7개

@Rido CIboard 처음 봤을 때, 대충 구조 파악하고, 라라벨에 적용해 보다가 실력이 부족하기도 하고, 갑자기 바빠지기도 했고,  이번 연말에 조금 시간이 나서,  다시 한번 도전해 보고 있습니다.  가장 어려운 부분이  커멘트 시스템인 것 같습니다.  Polymorphic 이 어렵고
그누보드와 다르게 Post와 Comment 각각 하나의 테이블로 전 게시판을 커버해야 되는 구조라서..
아무래도 그누보드보다는 늦을 것 같고..  그누보드처럼 테이블을 여러개 만드는 방법도 고민해봐야 될것 같고..
@마젠토 흠.. 일단 요즘 mysql성능향상도 있고 그누보드처럼 테이블을 계속 생성하는것보다는 ci-board의 형태가 더 좋아 보이긴 합니다. (차후 검색이라던가...) 행의 수 때문에 문제가 생길정도라면 차라리 그 홈페이지가 커스텀 되어야 하지 않을까요? -_-??
© SIRSOFT
현재 페이지 제일 처음으로