2011-01-15 7 views
1

데이터베이스에 내 트윗을 보관할 것입니다. 하지만 내가 한 것은 사용자 (나)로부터 최신 200 트윗을 가져 와서 데이터베이스에 삽입하는 PHP 스크립트이다. 이 PHP 스크립트는 Cron Job에서 실행될 예정이지만, 혼란스러워하는 것은 중복 트윗이 데이터베이스에 저장되는 것을 피하는 방법입니다. 구조는 테이블이 될 것입니다 : 사용자, 다음 두 개의 열, ID 및 짹짹. 그렇다면 PHP를 사용하여 전날 쓰는 중복 트윗을 피하는 방법은 무엇입니까?데이터베이스의 트윗 보관하기 (중복 방지)

감사

+1

짹 짹짹 ID를 저장하지 않고 insering하기 전에 ID가 존재하지 않았는지 확인하십시오. –

+0

어제의 JSON 짹짹 데이터에 ""id ": 25698023782744064,'-이 포함되어 있지 않습니다. 중복을 피하기 위해 기본 키로 적합합니다. – mario

+0

지난 200 시간을 잡지 마십시오. 일부를 놓치거나 많은 것을 얻을 수 있습니다. API 호출에서 마지막 ID 만 사용하십시오. – GolezTrol

답변

2

고유 트윗 ID를 제공, 당신은 당신의 데이터베이스에 UNIQUE로 해당 필드를 설정할 수 있습니다. ID가 이미있는 트윗을 삽입하려고하면 삽입되지 않습니다.

+0

감사합니다. – benhowdle89

+0

언제든지. 실패한 삽입이 전체 전환을 롤백하지 않는지 확인하는 것을 잊지 마십시오. –

+0

아, 어떻게 그럴 수 있죠? SQL 쿼리 내에서? – benhowdle89

1

당신은 당신의 트윗의 텍스트를 해시하고 해시를 보유하고 테이블에 고유 한 열을 추가 할 수 있습니다. 트위터 API를 가정

md5($tweettext) 
+1

왜 해시가 필요합니까? 트윗은 140 자입니다. 실제 트윗을 비교해보고 데이터베이스가 그 자체로 최선의 방법임을 알아낼 수 있습니다. – GolezTrol

0

마지막 200 개를 검색하지 마십시오. Twitter API는 특정 ID에서 트윗을 검색하는 방법을 제공합니다. 마지막으로 찾은 이드를 구하십시오.

1

가장 쉬운 방법은 서버에서 PHP 해시로 최신 200 개의 트윗을 얻는 것입니다. tweet_ids의 구성 및 배열 이 tweet_ids가있는 데이터베이스에서 선택하십시오. 새 트윗의 해시에서 데이터베이스에있는 것들을 제거하고 데이터베이스에 나머지를 삽입하십시오.

나는 동일한 문제가있었습니다. 먼저 트위터 since_id를 사용하여 트위터 API (since_id)가 작동한다고 가정 한 방식으로 작동하지 않는 것을 알았습니다.