2012-06-13 3 views
7

로컬 디렉토리 웹 사이트 (yelp/yell.com 등)를 실행하고 사이트에 나열된 비즈니스에 분석 데이터를 제공해야합니다.추적 사용자 - PHP/MySQL 웹 사이트 분석

나는 다음과 같은 추적해야합니다

1) 특정 페이지 (방문자 수 예 : 짐의 위젯이) 65 번 확인했다

2) 횟수는 사용자가 링크를 클릭 (예 : 012 사용자가 클릭하여 귀하의 웹 사이트를 방문하십시오)

조치가 취해질 때마다 관련 번호에 하나를 추가하면됩니다.

내가 할 수 있기를 원하는 것은 지난 30 일, 지난 12 개월 등 모든 날짜 범위로 나누는 것입니다.

어떻게이 데이터를 데이터베이스에 저장합니까? 코드가 아니라 이론 만 필요합니다! 누군가이 정보를 저장하는 가장 좋은 방법을 설명 할 수 있다면 매우 감사 할 것입니다.

예를 들어, 날짜/페이지 링크/사용자 데이터 (방문한 링크/방문한 페이지)에 대해 하나의 테이블을 사용합니까? 내가 지금까지 가지고있는 유일한 해결책은 이러한 동작 중 하나가 발생할 때마다 DB에 새로운 행을 추가하는 것인데, 이는 잘 확장되지 않을 것입니다.

도움을 주실 수있는 분들께 감사드립니다.

+2

왜 바퀴를 재발 명합니까? http://piwik.org 또는 big brother google analytics에서 확인하십시오.) – cypherabe

+0

너무 정확한 분석을 원하지 않으면 새 행 수를 줄일 수 있습니다. timestamp (int 10)로 저장 활동 대신, 하루에 그룹화/저장할 수 있습니다. 그건 그렇고 "결정적인"해결책이 아닙니다. – HBv6

답변

3

나는 바퀴를 재발 명하고 Piwik과 같은 이미 사용 가능한 솔루션을 사용하지 않을 것입니다. 실제로 요청한 모든 정보를 제공하기 위해 정상적인 웹 로그를 읽을 수 있습니다.

사용자 정의 솔루션이 여전히 필요한 경우 추적 데이터를 범위에 저장하지 않고 각 페이지 호출 (정확한 웹 로그가 제공하는 것)에 정확한 시간과 URL 데이터를 사용합니다. 누적 된 데이터는 로직 섹션에서 즉석에서 생성되어야합니다. SQL-view를 통해 :

SELECT count(url),url 
FROM calllog 
WHERE calldate > NOW()-30days 
+1

귀하의 회신에 감사드립니다, Lars. 이미 사이트에 G-Analytics가 있지만 Google 계정이있는 각 사용자가 로그인하여 사이트 전체 통계 대신 자체 통계를 볼 수있는 사용자 정의 페이지를 만들어야합니다. 그래서 모든 작업을 타임 스탬프가있는 데이터베이스의 새 행에 저장 하시겠습니까? MySQL을 사용하여 지난 30 일, 12 개월 등의 데이터 만 표시 할 수 있습니까? – drandom

+0

모든 개별 페이지 뷰 및 링크를 클릭하여 타임 스탬프와 함께 확장 가능한 솔루션을 저장하고 있습니까? 수백만 행의 데이터를 꽤 빨리 끝낼 수 있습니까? 다시 한번 감사드립니다 Lars – drandom

+1

예, 시스템이 웹 서버의 웹 로그에 이미 있습니다. 실제로이 데이터는 원하는 SQL 데이터베이스에 데이터를 저장하는 것보다 느립니다. 로직 부분은 통계를 보는 동안에 만 수행되므로 뷰가 아닌 캐시 테이블을 생성 할 수 있습니다. 캐시 테이블은 뷰가 필요 없으면 매분마다 재생성되고 로그 데이터는 삭제됩니다 (또는 누적 데이터로 축소됩니다). 나중에 참조, 예 : 6 개월 후 매일 정보에). PiWik은 고객을 보유 할 수있는 능력을 가지고 있으므로 다른 웹 사이트와 다른 고객을 구분할 수 있습니다. – Lars