2011-03-27 3 views
1

사용자가 필드에서 그들을 선택할 때 블로그 포스트에 여러 개의 태그를 추가하고 싶지만, mysql에 태그를 저장하는 것에 대해 궁금 해서요. 모든 태그를 저장할 필드가 있어야하거나 하나씩 저장해야합니다. 즉블로그 게시물에 여러 개의 태그를 추가하는 가장 좋은 방법은 무엇입니까?

tags_field = (cats ,animals, fur) 

또는

id1 cats 

id2 animals 

id3 fur 

난 사용자에게 제시 할 때 첫 번째 예제를 사용하고 목록을 폭발 단일 태그로를 sepearte하는 생각을했다! :)) 감사

답변

4

세 가지 테이블을 사용한다 : 당신이 게시물을 저장

  • 한 테이블; 행 당 하나의 게시물
  • 태그를 저장하는 테이블 하나; 행 당 하나 개의 태그는
  • 그리고 하나의 조인 수, 당신은 커플 tag_id + post_id

이 방법을 저장할 경우, 하나 개의 태그는 여러 게시물에 의해 사용할 수 없습니다, 하나 개의 게시물을 여러 태그를 가질 수 있습니다 - 그리고 더있다 어떤 종류의 데이터 복제.


그래서, 기본적으로, 당신의 테이블은 다음과 같이 보일 것이다 : 당신이 첫 번째 방법으로 갈 경우

posts 
    - id ; primary key 
    - date 
    - title 
    - content 

tags 
    - id ; primary key 
    - name 

posts_tags 
    - tag_id ; primary key ; foreign key to tags.tag_id 
    - post_id ; primary key ; foreign key to posts.post_id 
+0

yeh도 구조가 있습니다. :)) 내 현재 데이터베이스에서, 그래서 나는 두 번째 예제와 함께 가야한다고 생각합니다 !!! 롤 :) :) – pingpong

+0

하나의 필드에 여러 데이터를 저장하는 것은 일반적으로 꽤 나쁜 생각입니다 ;-) –

+0

감사합니다 :))) 브릴리언트 왜 나는 72.k rep! – pingpong

1

당신은 쿼리에 어려움이있을 것이다. 예를 들어 "고양이"라는 태그가있는 모든 게시물을 쉽게 찾을 수 없습니다. 당신이 문제가되지 않을 두 번째 접근법을 가지고 있다면.

즉, 게시물과 태그를 매핑하는 postId_tag ​​테이블이 있어야합니다.

관련 문제