2011-08-04 5 views
1

나는 뉴스 사이트에서 일하고 있으며 다음과 같은 다른 카테고리 유형별로 뉴스를 분류 할 수있는 태깅 시스템 (이 사이트와 유사)을 구현할 생각입니다. newscategory (economy , 정치 등)뿐만 아니라 쓰여진 언어와 뉴스 기사 유형 (사설, 특집 기사 등)과 같은 것들이 포함됩니다.태그 시스템 설계 이슈

다른 카테고리 유형을 어떻게 구분해야합니까? 각 카테고리 유형에 대해 하나의 태그 테이블을 가져야합니까, 아니면 모든 것을 하나의 테이블에 유지하고 "language : en", "category : economy"와 같은 태그 접두어를 사용해야합니까? 두 번째 솔루션은 접두사를 추가하는 것만으로 더 많은 유형의 caretory를 추가 할 수 있기 때문에 더욱 유연 해 보인다. 그러나 첫 번째 솔루션은 구조화되고 작업하기가 쉽습니다.

또한 태그로 표시해야 할 항목이나 데이터베이스의 열 값/레코드 일 때를 어떻게 결정할 수 있을지 궁금합니다 (예 : 언어가 태그 여야하거나 내 "뉴스"에 언어 열이 있어야합니까? "테이블?). 나는 선을 그어야하는지 잘 모르겠다.

감사합니다.

답변

1

태그 자체가 계층 구조로 정렬 될 수 있다고 말하는 것으로 충분합니까? 그렇다면 tags 테이블에 parent_tag_id을 추가하기 만하면됩니다.

id name   parent_tag_id 
------------------------------- 
1 language  null 
2 english  1 
3 french  1 
4 newscategory null 
5 economy  4 
6 politics  4 

정적 필드 및 행을 동적으로 생각할 수 있습니다. 기둥 수를 줄이십시오. 언어는 표에있는 모든 필드의 열을 언어와 연관시켜야합니다.

+0

흥미 롭습니다. 감사합니다. 나는 여전히 각 카테고리 유형에 대해 별도의 테이블을 사용하는쪽으로 기울어 져있다. 카테고리 유형과 더 많은 것을 연관시키고 싶을 수도 있습니다. 카테고리 유형 자체는 반드시 동적 일 필요는 없으며 정규화 된 구조를 선호합니다. – Pking

+0

다른 카테고리 유형이 다른 속성 유형 및 기능을 갖는 경우, 각각에 대해 별도의 표를 찾아 볼 수 있습니다. 이름을 제외하고 모두 동일한 특성을 공유하는 경우 categories라는 하나의 표를 작성하십시오. – Johan