오봉이와 함께하는 개발 블로그

Artineer - 게시글 댓글 작성 기능(대댓글 포함) 본문

Artineer 리뉴얼 프로젝트

Artineer - 게시글 댓글 작성 기능(대댓글 포함)

오봉봉이 2022. 5. 18. 23:37
728x90

댓글

댓글 기능을 구현하려 하니 대댓글을 구현하려면 어떻게 DB 설계를 해야할지 고민이 생겼다.

테이블 설계는 최대한 심플하게 하고 싶었기에, 'column을 최대한 적게 만들면서 만들 수 있는 방법이 무엇일까?' 위주로 생각했던 거 같다.

그래서 어떻게 생각 했는데?

우선 다른 게시판을 참고하면 보통 작성한 시간 순으로 댓글(대댓글)을 표시하기 때문에 WriteDate를 통해 작성 시간을 저장했다.
나도 마찬가지로 댓글(대댓글) 표현 순서를 작성 시간으로 하겠다.

또, 댓글에 대한 대댓글을 작성하기 위해서는 내가 어떤 댓글에 대댓글을 작성했는지에 대한 정보 즉, 부모 댓글에 대한 정보가 필요하기 때문에 대댓글에 해당하는 row에만 부모 댓글에 해당하는 정보를 줄 것이다.

구현 알고리즘은...

댓글 작성과 대댓글 작성 알고리즘으로 나뉘겠다.

댓글 작성

내용을 작성하고 버튼을 누르면 입력 값이 insert되고 View에 작성 시간 순서로(최근에 작성한 댓글이 아래로 가도록) 정보를 보여준다.

대댓글 작성

대댓글 작성 기능이 고민이 되었다. 위에서 언급했듯 column을 최대한 적게 만들면서 구현하고 싶었기 때문에 기존 생각했던 WriteDate를 이용하여 순서를 표시하고 부모 댓글의 댓글 번호(No)가 들어갈 column(이하 ParentCommentNo)을 하나 더 만들어서 넣어주고 ParentCommentNo이 있는지 검사하여 있으면 해당 댓글 번호로 찾아가 작성 시간 순서로 댓글을 표시한다.

728x90
Comments