[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개






그누보드와 다르게 Post와 Comment 각각 하나의 테이블로 전 게시판을 커버해야 되는 구조라서..
아무래도 그누보드보다는 늦을 것 같고.. 그누보드처럼 테이블을 여러개 만드는 방법도 고민해봐야 될것 같고..
