2012-07-10 3 views
1

이렇게하는 플러그인이 있습니까? 그렇지 않다면 이론적으로 이런 종류의 정보를 추적하는 mysql 데이터베이스를 만들 수 있을까요?Wordpress 사용자가 이미 읽은 게시물을 알 수있게 할 수 있습니까?

예를 들어 사용자 이름이 기본 키인 post_views 테이블이 있고 사용자가 올 때마다 해당 테이블에 게시물 ID가있는 열 값이 있는지 확인합니다.

만약 그렇다면, 뭔가를하고, 그렇지 않다면, 열을 만들어 값을 1 또는 뭔가 할당하십시오.

이와 같은 것이 가능합니까? 죄송합니다, 나는 mysql 멍청한 놈입니다.

감사합니다.

+0

플러그인 데이터베이스를 검색해 보셨습니까? http://wordpress.org/extend/plugins/search.php?q=track – biziclop

답변

2

글쎄, 가능하다. 당신은 할 수

: 그들의 거대한 저장소에 플러그인에 대한 검색 및 설치 :

  1. 모두 좋아하니는 WP와 함께한다. 기회는 필요에 따라 정확하게 작동합니다.
  2. 은 로그인 한 사용자의 경우 : 관계 테이블을 생성,

     id | user_id | post_id 
    

    그리고 각 게시물보기에서 users_posts

    이 테이블에 사용자 ID와 게시물 ID를 삽입 말한다 (그리고 당신이 다른 정보를 추가 할 수 원하는 경우, 게시물을 읽은 날짜 등). 이 테이블에 대한 질의는 사용자가 열어 본 모든 페이지를 알려주거나 그 반대로 해당 사용자가 페이지를 보았는지 여부를 확인할 수 있습니다. 당신이 말한 것에서 이것은 당신이 염두에 두었던 것보다 더 실현 가능한 테이블 스키마입니다;

  3. 로그되지 않은 사용자의 경우 : 사용자 ID가없는 상태에서 쿠키를 사용할 수 있습니다. 사용자 정보 (IP, UserAgent, 무엇이든) 및 게시물 ID를 쿠키에 쓸 수 있습니다. 쿠키가 지워지지 않는 한 (또는 만료) 사용자가 본 것을 알 수 있습니다. 단맛 추가 : 사용자가 로그인하는 즉시이 쿠키 기반 정보를 2 번에서 설명한 방법으로 변환 할 수 있습니다.

    글쎄, 두 번째 생각에, 쿠키가 필요하지 않습니다, 당신도 여기에 데이터베이스를 사용할 수 있지만 테이블은 사용자 ID를 저장하지 않습니다하지만 다른 정보 (당신은 추가 된 열 또는 동일한 테이블을 사용할 수있는 새로운 하나는 특별히 기록되지 않은 사용자를위한 것입니다.) 후자를 위해 가겠습니다.

    IP, 사용자 에이전트 및 기타 정보는 신뢰할 수 없으며 문제를 유발할 수 있습니다. 다른 사용자, 두 번째 쉽게 스푸핑 수 있습니다. 가장 좋은 방법은이 점을 무시하는 것입니다. 3) 항상 로그인 한 사용자 만 추적하면 문제가 발생하지 않습니다.

+0

답변 해 주셔서 감사합니다! 나는 그것이 실현 가능하다는 것을 다소 알았지 만, 거대한 데이터베이스로 끝날 것이므로 실용적인지 확실하지 않았다. 성능 문제가 있습니까? 또한 읽은 post_id를 하나의 열에 입력합니까? 또는 post_id와 0 또는 1과 같은 스위치 변수를 사용하여 새 열을 만들겠습니까? –

+1

스위치 변수의 목적은 무엇입니까? IMHO 당신이 쉽게 접근 할 수있는 방법을 보여줍니다. 성능 문제에 관해서는, MySQL은 제대로 인덱싱 된 경우 백만 개의 행을 쉽게 처리 할 수 ​​있습니다. 따라서 테이블이 너무 커다고 느낄 경우 이전/유용하지 않은 행을 항상 삭제할 수 있기 때문에 큰 차이는 없습니다. –

+0

Told 당신은 내가 멍청한 녀석 이었어. 고마워. –

관련 문제