2011-03-30 8 views
3

나는 블로그 작업을하고 있습니다. 이제 저자의 가장 많이 사용 된 태그를 표시하고 싶습니다. (| | authorid 태그 ID)가장 많이 사용한 태그 - mysql

제 테이블 : 태그는 열라는 태그, 기사 테이블에 저장됩니다, 한국 공작 기계 공업 협회는 구분

1 | 1 | 축구, 스포츠
2 | 1 | 스포츠, 테니스, 부상
3 | 1 | 스포츠, 골프, 부상

그래서 ID가 1 인 작성자를 표시하고 위에 표시된 것처럼 기사 테이블에서 가장 많이 사용 된 태그 3 개를 표시하려고합니다. 이 경우 스포츠, 부상, 축구가 될 것입니다.

MySql에서 가능합니까?

+2

비정규 화 된'tags' 열로 고정 되었습니까? 아니면 기사 태그를 나열하는 실제 표를 만들 수 있습니까? 태그 테이블을 사용하면 이것은 사소한 일입니다. – VoteyDisciple

+0

태그와 테이블과 기사 및 태그를 결합한 테이블을 실제로 추가해야합니다. mysql을 사용하면 쉽게 만들 수 있습니다. 이제는 가능하다면 매우 어려울 것입니다. – jeroen

+0

네, 생각했습니다. 나는 지금이 칼럼에 붙어있다. 그래서 이것도 가능합니까? – Bert

답변

5

예, 가능하지만 더 나은 대답은 "Normal"데이터베이스 구조로 안내하는 것입니다. 태그의 ID와가에 할당 된 기사를 포함 article_tagstags

articles, 테이블, 테이블 :

당신은 정말 같은 설정 DB를해야합니다.

그러면 article_tags을보고 tag_id이 모두 article_id = ('X') 인 페이지를 반환하여 각 기사 ('X')별로 태그를 쿼리 할 수 ​​있습니다.

+0

감사합니다. 나는 이것을 안으로 만들려고 노력할 것이다. 훨씬 더 의미가있다. – Bert

+0

문제 없음 - 이러한 유형의 문제를 볼 때 종종 달성하기 쉽지 않은 경우 데이터 모델에 문제가 있습니다. – diagonalbatman

2

당신은 database normalization을 봐야합니다 - 위키 백과의 기사는 매우 발전되었지만 주제에 대한 더 많은 기사를 찾을 수있는 용어를 찾을 수 있습니다. 그들 가입

table name: tags 
columns: id | name 

그리고 테이블 :

기본 개념은 다른 테이블을해야합니다입니다 그리고

table name: article_tags 
columns: article_id | tag_id 

당신거야 join 쿼리에서 함께 모든 데이터 각 기사의 태그 이름을 표시합니다. 그런 다음 테이블에 대한 고급 쿼리를 수행하여 기사별로 가장 많이 사용되는 태그와 작성자별로 가장 많이 사용되는 태그 등을 파악할 수 있습니다.

+0

감사! 이것을 시도 할 것이다. 링크를 가져 주셔서 감사합니다. – Bert

관련 문제