쪽지를 카톡처럼 꾸미던 중 답글을 추적하는 동작을 해보려 했는데요.(링크 누르면 답글 쪽으로 이동)
이게 불가능하다는 걸 알았습니다.
쪽지 쪽 테이블(member_message)에 parent_srl이라든가 그에 준하는 컬럼이 없어서 원본/부모 메시지에 관한 정보를 알아낼 수 없더라구요.
원본에 관한 정보는 그냥 답장 보낼 때 원본 메시지 긁어다가 내용만 붙여주는 것으로 잠깐 등장한 뒤 끝납니다.
답장을 보내고 난 다음에는 원본/부모 메시지를 추적할 기반이 하나도 없어요(적어도 제가 파악한 바로는요).
이런 거는 서드파티 모듈에서 따로 테이블 만들어서 parent_srl을 넣어주는 게 나을까요?
근데 그렇게 하면 각 message_srl마다 parent_srl을 기록해줘야 해서 데이터가 누적량이 늘어날 것 같은 노파심도 듭니다.
그렇다고 원래 있는 member_message 테이블에다 parent_srl 컬럼만 넣어주면 기존 데이터에 parent_srl에 준하는 값을 기록해둘 수가 없고...
댓글과 달리, 쪽지는 원래부터 부모/자식 관계가 아니지요.
메일과 비슷한 개념으로 설계되었다고 가정하면 In-Reply-To: 에 해당하는 데이터라도 기록해 두었다면 좋았겠지만, 이제 와서 제목의 Re: 이후 부분이나 내용에 포함된 인용문으로 추측하는 것도 무리고요.
원본 메시지에 대한 정보가 있더라도 댓글의 comments_list 테이블처럼 정렬 순서 및 depth 정보를 함께 기록하지 않으면 목록에서 트리 구조를 재현하기가 무척 난감합니다. 같은 상대방과 꾸준히 메시지를 주고받다 보면 depth가 무한정 깊어지기만 할 테니, 트리 구조가 그다지 쓸모있는 UI인지도 의문이 들고요.
현재로서는 대화 상대방의 member_srl (+ 제목이 Re:로 시작하는지)만을 기준으로 분류해서, 각각의 쓰레드를 해외 포럼처럼 1차원적으로 나열하는 것이 최선일 것 같네요. 지메일도 1차원적으로 나열할 뿐, 메일링 리스트처럼 트리 구조로 표현하지는 않아요. 여기서 디자인만 바꾸면 그냥 채팅이 되고요.