2010-06-02 5 views
1

어떻게이 시스템의 첫 번째 구현이 아니 었는지 stackOverFlow가 알려 주셨습니다. 초기 태그가 무엇인지 결정하십시오.php 데이터베이스 속도와 사용자 경험을 향상시키는 PHP

사용자에게 내 사이트에서 최상의 환경을 제공하고 태그 시스템을 구현하고 싶습니다. 나는 수색 엔진 또는 그 무엇이든을 걱정하지 않는다. 나는 단지 내 사용자를 염려한다.

사용자가 태그를다는 것을 허용 할 때 실패했거나 성공한 것에 대해 조언을 해주는 사람이 있습니까?

사용자 태그 지정 방법에 대한 유용한 자료를 알고 있습니까? 프로그래밍 관점, 데이터베이스 구조, 이론 등에서 태그 시스템을 구현하는 데 유용한 리소스를 알고 있습니까?

나는 누가 내게 그 주제에 대한 가장 좋은 방향으로 나를 가리킨다는 느낌을 줄 것이다.

+0

트위터는 # 기호로 표시된 주제라는 일종의 태그 시스템을 사용합니다. 그들은 필터링되지 않지만 Twitter가 트렌드를 인식함에 따라 유용합니다. 사용자는 추세를 유지하기 위해 스스로를 단속합니다. 나는이 같은 이유로 내 게시물에 더 많은 수의 태그를 선택하는 경향이 있습니다. 내 게시물이 관련성이 있기를 바랍니다. – Sonny

+0

또한 내가 물어 봐야 하나 좋은 PHP 태그 라이브러리를 들여다 알 수 있습니까? 유일한 것은 오버 헤드 현명한 것입니다. – Prospero

답변

1

태그 시스템은 다 대다 관계입니다 (항목은 많은 태그를 가질 수 있고 태그는 많은 항목을 가질 수 있습니다). 이를 구현하는 한 가지 방법은 태그 용 테이블 하나, 태그가 달린 항목에 대한 테이블 (예 : 기사) 및 태그/항목 관계에 대한 교차 테이블을 갖는 것입니다.

표 "태그"

id 
tagname 

표 "항목"

id 
itemname 
itemcontent 

표 "Item_Tag"

item_id 
tag_id 

때마다 당신이 항목에 태그를, 또 다른 추가 행을 Item_Tag 테이블에 추가합니다. 테이블을 결합하여 관계를 얻으십시오. 예를 들어, 모든 항목이 "PHP"태그 찾기 : 태그의 실제 사용에 관해서는

SELECT Item.id,Item.itemname FROM Item 
JOIN Item_Tag ON Item_Tag.item_id = Item.id 
JOIN Tag ON Tag.id = Item_Tag.tag_id 
WHERE Tag.tagname = "PHP"; 

을, 당신이주의 할 유일한 것은 너무 많은 태그입니다. 모든 태그에 태그가 붙은 항목 만 있으면 검색 결과가 좋지 않습니다. 유사한 태그가 중복되지 않도록 수동으로 태그 생성 프로세스를 위임해야 할 것입니다.

귀하의 사이트가 무엇인지 알려주지 않는 한, 태그가 시작되는 데 도움이되지 않습니다. 스택 오버플로는 모든 프로그래밍 언어 용 태그와 알고리즘, OOP 등과 같은 다른 프로그래밍 주제로 시작되었습니다.