gmail의 label을 DB로 구현하는 방법?
글쓴이: lacovnk / 작성시간: 토, 2005/03/19 - 9:08오전
궁금해져버렸습니다 ㅎ
일단 구글이 어떻게 구현했는지는.. 알수가 없군요 OTL
조건은 다음과 같겠지요?
Quote:
1. 각 글은 id를 가진다
2. label은 한 글에 안붙을 수도, 여러개 붙을 수도 있다
3. label의 이름 변경, remove, 추가 등이 가능하다
4. label 별로 검색이 가능하다
생각해본 것은 다음과 같습니다.
방법1.
Quote:
* label은 별도 테이블에 id - name 으로 한다.
* 각 글에 label용 text 필드 하나를 두고, 여기에 특정 구분자로 lable의 id를 적어넣는다.
방법2.
Quote:
* label 테이블을 만든다. id - name - 글id 들
요건 글 수가 많아지면 문제가 되겠군요..
어떤 구현 방법이 있을까요? ㅎㅎ
Forums:
--;;
글쎄요. 이건 질문거리가 아닐 것 같은데요.
방법3.
이게 가장 일반적인 정규화 방법 아닌가요?
물론 구글이 어떻게 구현하고 있는지는 알 수가 없죠. ;-)
우수하지 않아요. '우수한'은 옛날 만화 CityHunter에서 따와서 쓰던 별명. ;-)
아앗, 깜빡했군요 ㅎ 조금 다른.. 카테고리와 공존하는 방법에
정규화를 안했군요 :oops: (사실 잘 모르고 감으로 쓰고 있습니다만 ㅎ)
기존의 카테고리와 공존하는 것은 어떻게 해야 할 까요?
예를 들어, 각 게시물의 여러 label중에서 한 label을 primary label으로 두어, 카테고리처럼 보는 것이죠. 그러면, 기존의 카테고리 시스템에서 label로 이전하는 것이 간단해집니다.
primary label을 기준으로 모든 게시물은 exclusive하니.. 카테고리처럼 되겠지요.
다만 문제는, 카테고리는 계층이 있고, label은 없다는 점인데.. 이건 label 시스템으로 가면서 포기해야 할지, 아니면 label 역시 트리 형태로 만들 수 있게 할지.. 이것은 좀 생각해봐야겠군요 ㅎ
사실 label을 붙인 다는 것이, 서로 겹치는 것이 많다는 것이므로, 계층으로 하면 트리가 아닌 이상한 그래프가 그려질 것 같아 어려워 보이기도 하고요 ㅎ
사실 gmail에서, label의 개수가 점점 늘어나는 것이 부담스럽긴 합니다;;
daum 블로그에서 태그라는 것으로 비슷한 것을 해주는군요 ㅎ
태그? : http://hochan.net/archives/2005/03/24@11:04AM.html
다음 블로그 : http://blog.daum.net/
으음.. 그런데 이렇게 site-wide한 시스템은 부하 장난 아니겠군요 -_-;;
위처럼, label(or tag) id - article id 리스트를 갖고 있는 테이블을 그러면 어떻게 설계하게 되나요? id%5로 테이블을 나누어놓거나.. 그렇게 하나요? 으음... 어차피 글에서 태그 이름을 보여주려면 각각의 table과 조인을 해야 할테니 별 소용이 없으려나..
아아 DB 재밌을 것 같아요 :oops:
댓글 달기