2011-03-01 3 views
11

PHP와 MySQL 데이터베이스에서 태그 시스템을 만드는 방법을 궁금하게 생각하는 나의 초기 생각은 기사에 태그가 저장되고 쉼표로 구분 된 태그를 나열하는 테이블의 행을 만드는 것이었지만 나는 그렇지 않습니다. 일치하는 태그를 검색하는 쿼리를 작성하는 방법은 다른 사람이 태그를 클릭 할 때마다 모든 기사를 쿼리해야합니다. 누구든지 도와 줄 수 있습니까?어떻게 PHP와 MySQL을 사용하여 태깅 시스템을 만들 수 있습니까?

+5

나는 "데이터베이스 정규화"에 독서 좋을 것. 좋은 시작은 http://en.wikipedia.org/wiki/Database_normalization입니다. –

답변

30

넌 설명하고 있습니다 대다 관계 사이 기사 및 태그. 중간 관계 테이블을 사용하여 관계를 해결하고자 할 수 있습니다. 이제

enter image description here

는 선택된 태그를 일치하는 모든 기사를 찾을 수 있습니다 :

SELECT a.article_title 
    FROM Tag t 
     INNER JOIN Article_Tag_Xref atx 
      ON t.tag_id = atx.tag_id 
     INNER JOIN Article a 
      ON atx.article_id = a.article_id 
    WHERE t.tag_name = 'SelectedTagName' 
+0

이게 멋지다. 아프지 않아. 감사! – mcbeav

2

tbl_articles는

tbl_tags가 tagID을 갖는 등은 articleID를 갖는 등

tbl_taggedarticles는 taggedArticleID,은 articleID, tagID

SELECT articleID FROM tbl_taggedarticles WHERE tagID = "searchedID" 
관련 문제