하나의 테이블에서 원글의 답글과 댓글의 답글을 모두 해결하는 방식을 찾고자 합니다.
테이블의 구조를 다음과 같이 구성합니다.
컬럼명 |
종류 | 설명 |
wr_id |
int | 고유아이디 |
wr_parent |
int | 부모아이디 |
wr_comment |
int | 0이면 원글, 아니면 댓글 |
wr_reply | varchar(10) | 0~9 그리고 a~z 36진수 사용 0은 제외 깊이는 10개 까지로 한정함 |
wr_comment_cnt | int | 원글에서 댓글의 수를 저장 |
wr_subject | varchar(255) | 제목 |
글이 다음과 같이 저장되어 있다고 했을때
SQL 질의: SELECT * FROM `a_write` LIMIT 0, 25 ;
행 : 14
| wr_id | wr_parent | wr_comment | wr_reply | wr_comment_cnt | wr_subject |
|---|---|---|---|---|---|
| 1 | 1 | 0 | 5 | 원글1 | |
| 2 | 1 | 0 | 1 | 0 | 원글1-1 |
| 3 | 1 | 0 | 2 | 0 | 원글1-2 |
| 4 | 1 | 0 | 11 | 0 | 원글1-1-1 |
| 5 | 2 | 0 | 0 | 원글2 | |
| 6 | 2 | 0 | 1 | 0 | 원글2-1 |
| 7 | 1 | 1 | 1 | 댓글1 | |
| 8 | 1 | 2 | 2 | 댓글2 | |
| 9 | 1 | 3 | 0 | 댓글3 | |
| 10 | 1 | 2 | 1 | 0 | 댓글2-1 |
| 11 | 1 | 2 | 11 | 0 | 댓글2-1-1 |
| 12 | 1 | 1 | 1 | 0 | 댓글1-1 |
| 13 | 2 | 0 | 2 | 0 | 원글2-2 |
| 14 | 1 | 0 | 21 | 0 | 원글1-2-1 |
원글을 표시할때는 이 쿼리를 실행합니다.
답변의 깊이(depth)는 wr_reply 의 갯수로 처리할수 있습니다.
SQL 질의: SELECT * FROM `a_write` where wr_comment = 0 order by wr_parent desc, wr_reply LIMIT 0, 25 ;
행 : 8
| wr_id | wr_parent | wr_comment | wr_reply | wr_comment_cnt | wr_subject |
|---|---|---|---|---|---|
| 5 | 2 | 0 | 0 | 원글2 | |
| 6 | 2 | 0 | 1 | 0 | 원글2-1 |
| 13 | 2 | 0 | 2 | 0 | 원글2-2 |
| 1 | 1 | 0 | 5 | 원글1 | |
| 2 | 1 | 0 | 1 | 0 | 원글1-1 |
| 4 | 1 | 0 | 11 | 0 | 원글1-1-1 |
| 3 | 1 | 0 | 2 | 0 | 원글1-2 |
| 14 | 1 | 0 | 21 | 0 | 원글1-2-1 |
1번 게시물 만을 모아보는 경우에는 이렇게 쉽게 처리할수 있습니다.
SQL 질의: SELECT * FROM `a_write` where wr_parent=1 and wr_comment = 0 order by wr_parent desc, wr_reply LIMIT 0, 25 ;
행 : 5
| wr_id | wr_parent | wr_comment | wr_reply | wr_comment_cnt | wr_subject |
|---|---|---|---|---|---|
| 1 | 1 | 0 | 5 | 원글1 | |
| 2 | 1 | 0 | 1 | 0 | 원글1-1 |
| 4 | 1 | 0 | 11 | 0 | 원글1-1-1 |
| 3 | 1 | 0 | 2 | 0 | 원글1-2 |
| 14 | 1 | 0 | 21 | 0 | 원글1-2-1 |
1번의 코멘트 만 노출하는 경우에는 이렇게 처리합니다.
SQL 질의: SELECT * FROM `a_write` where wr_parent = 1 and wr_comment > 0 order by wr_comment, wr_reply LIMIT 0, 25 ;
행 : 6
| wr_id | wr_parent | wr_comment | wr_reply | wr_comment_cnt | wr_subject |
|---|---|---|---|---|---|
| 7 | 1 | 1 | 1 | 댓글1 | |
| 12 | 1 | 1 | 1 | 0 | 댓글1-1 |
| 8 | 1 | 2 | 2 | 댓글2 | |
| 10 | 1 | 2 | 1 | 0 | 댓글2-1 |
| 11 | 1 | 2 | 11 | 0 | 댓글2-1-1 |
| 9 | 1 | 3 | 0 | 댓글3 |
위와 같이 몇개 안되는 샘플 데이트로 살펴 보았지만 충분히 원글의 답글과 댓글의 답글을 표현할수 있는것을 확인하였습니다.
댓글 1개
이것을 간과했네요.
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 230 | 20년 전 | 2066 | ||
| 229 | 20년 전 | 3137 | ||
| 228 | 20년 전 | 3325 | ||
| 227 | 20년 전 | 2395 | ||
| 226 | 20년 전 | 5480 | ||
| 225 | 20년 전 | 2524 | ||
| 224 | 20년 전 | 2970 | ||
| 223 | 20년 전 | 4207 | ||
| 222 | 20년 전 | 2606 | ||
| 221 | 20년 전 | 2290 | ||
| 220 | 20년 전 | 3679 | ||
| 219 | 20년 전 | 2073 | ||
| 218 | 20년 전 | 3566 | ||
| 217 | 20년 전 | 2482 | ||
| 216 | 20년 전 | 2912 | ||
| 215 | 20년 전 | 2227 | ||
| 214 | 20년 전 | 3338 | ||
| 213 | 20년 전 | 2918 | ||
| 212 | 20년 전 | 3053 | ||
| 211 | 20년 전 | 2148 | ||
| 210 | 20년 전 | 1897 | ||
| 209 | 20년 전 | 2358 | ||
| 208 | 20년 전 | 1978 | ||
| 207 | 20년 전 | 1677 | ||
| 206 | 20년 전 | 1855 | ||
| 205 | 20년 전 | 3952 | ||
| 204 | 20년 전 | 1677 | ||
| 203 | 20년 전 | 2011 | ||
| 202 | 20년 전 | 2360 | ||
| 201 | 20년 전 | 1828 | ||
| 200 | 20년 전 | 2957 | ||
| 199 | 20년 전 | 2005 | ||
| 198 | 20년 전 | 2088 | ||
| 197 | 20년 전 | 3655 | ||
| 196 | 20년 전 | 2984 | ||
| 195 | 20년 전 | 2095 | ||
| 194 | 20년 전 | 10251 | ||
| 193 | 20년 전 | 2247 | ||
| 192 | 20년 전 | 1603 | ||
| 191 | 20년 전 | 2669 | ||
| 190 | 20년 전 | 2293 | ||
| 189 | 20년 전 | 1686 | ||
| 188 | 20년 전 | 1482 | ||
| 187 | 20년 전 | 1908 | ||
| 186 | 20년 전 | 1722 | ||
| 185 | 20년 전 | 1770 | ||
| 184 | 20년 전 | 2351 | ||
| 183 | 20년 전 | 1562 | ||
| 182 | 20년 전 | 1485 | ||
| 181 | 20년 전 | 1625 | ||
| 180 | 20년 전 | 2722 | ||
| 179 | 20년 전 | 1805 | ||
| 178 | 20년 전 | 1862 | ||
| 177 | 20년 전 | 1986 | ||
| 176 | 20년 전 | 1807 | ||
| 175 | 20년 전 | 1872 | ||
| 174 | 20년 전 | 1694 | ||
| 173 | 20년 전 | 2060 | ||
| 172 | 20년 전 | 1787 | ||
| 171 | 20년 전 | 2566 | ||
| 170 | 20년 전 | 2274 | ||
| 169 | 20년 전 | 2554 | ||
| 168 | 20년 전 | 1487 | ||
| 167 | 20년 전 | 1578 | ||
| 166 | 20년 전 | 2160 | ||
| 165 | 20년 전 | 1631 | ||
| 164 | 20년 전 | 3771 | ||
| 163 | 20년 전 | 2668 | ||
| 162 | 20년 전 | 2086 | ||
| 161 | 20년 전 | 2795 | ||
| 160 | 20년 전 | 1735 | ||
| 159 | 20년 전 | 1616 | ||
| 158 | 20년 전 | 2566 | ||
| 157 | 20년 전 | 1489 | ||
| 156 | 20년 전 | 1743 | ||
| 155 | 20년 전 | 3230 | ||
| 154 | 20년 전 | 1902 | ||
| 153 | 20년 전 | 1625 | ||
| 152 | 20년 전 | 4953 | ||
| 151 | 20년 전 | 4579 | ||
| 150 | 20년 전 | 3516 | ||
| 149 | 20년 전 | 3799 | ||
| 148 | 20년 전 | 7077 | ||
| 147 | 20년 전 | 3550 | ||
| 146 | 20년 전 | 2623 | ||
| 145 | 20년 전 | 2622 | ||
| 144 | 20년 전 | 7168 | ||
| 143 | 20년 전 | 4602 | ||
| 142 | 20년 전 | 1900 | ||
| 141 | 20년 전 | 3253 | ||
| 140 | 20년 전 | 1962 | ||
| 139 | 20년 전 | 1585 | ||
| 138 | 20년 전 | 2308 | ||
| 137 | 20년 전 | 1782 | ||
| 136 | 20년 전 | 1456 | ||
| 135 | 20년 전 | 1785 | ||
| 134 | 20년 전 | 2967 | ||
| 133 | 20년 전 | 2451 | ||
| 132 | 20년 전 | 1706 | ||
| 131 | 20년 전 | 1642 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기