2011-01-15 19 views
1

私のつぶやきをデータベースに保存します。私が行ったことは、ユーザー(私)から最新の200のつぶやきをつかんでデータベースに挿入するPHPスクリプトを書いたことです。このPHPスクリプトはCronジョブで実行されますが、私は混乱しているのは、重複ツイートをデータベースに入れないようにする方法です。構造はテーブルになりました:ユーザー、次に2列、IDとTweet。だから、私はそれが、前日に置かれているような、重複したつぶやきを入れないようにPHPをどうやって得るのだろうか?データベースのつぶやきをアーカイブする(重複を避ける)

おかげ

+1

Tweet IDを保存して、インペアリングする前にIDが存在していないことを確認できませんでしたか? –

+0

昨日のJSONツイートデータに重複を避けるための主キーとして適していると思われる '' id ":25698023782744064、' - – mario

+0

最後の200をつかんではいけません。 api呼び出しで最後のIDを使用してください。 – GolezTrol

答えて

2

は、ユニークなつぶやきのIDを提供し、あなたのデータベース上のUNIQUEとしてそのフィールドを設定することができます。 IDが既に存在するツイートを挿入しようとすると、挿入は行われません。

+0

私はこのように、ありがとう – benhowdle89

+0

いつでも。失敗した挿入がトランジション全体をロールバックしないことを確認することを忘れないでください。 –

+0

ああ、どうすればいいですか? SQLクエリ内? – benhowdle89

1

あなたのつぶやきのテキストをハッシュし、ハッシュを保持しているあなたのテーブルに一意の列を追加することができます。 TwitterのAPIを想定し

md5($tweettext) 
+1

なぜハッシュですか?ツイートはわずか140文字です。あなたは実際のツイートを比較して、それを実行する最善の方法がデータベース自体を理解できるようにすることができます。 – GolezTrol

0

最後の200件を検索しないでください。Twitter APIは、特定のIDからツイートを取得する方法を提供します。最後に取得したIDを保存してください。

1

最も簡単な方法は、サーバーからPHPの最新の200個のツイートを取得することです。それらのtweet_idsの構造と配列これらのtweet_idが存在するデータベースから選択します。新しいツイートのハッシュからデータベースに存在するものを削除し、残りをデータベースに挿入します。

私は同じ問題を抱えていました。まず、twitter since_idを使って、twitter API(since_id)がうまく動いていないとわかった。

関連する問題