1

誰かがこのスレッドを読んだ後、同様の問題を抱えている他の人に役立つより良いタイトルを提案できる場合は、それを修正します.

私は自分のウェブサイトで代理のリブログ数を数えようとしていますが、現在はオーガニックのみを数えています.

例えば

USER1 が画像をアップロードし、USER2 が画像をリブログします

USER1 の画像ページにリブログ数が「1」と表示されるようになりました。

ここに問題があります。

別のユーザー、たとえば USER3 が USER2 の画像をリブログした場合。元のアップローダーのカウントは 1 のままです。USER1 の画像は 2 回共有されていますが。オーガニックなリブログのみをカウントします。

したがって、人々は、人気のある画像をアップロードしてすべての信用を奪う、あまり人気のないユーザーを悪用することができます.

SQL の詳細は次のとおりです。

画像が「リブログ」されると、次の詳細が という名前のテーブルに自動的に追加されますreblog

id repin_user_id owner_user_id from_pin_id new_pin_id

上記の例を使用repin_user_idすると、USER2 になります。owner_user_idUSER1 になります。from_pin_idUSER2 が画像をリブログしたページであり、USER2 がリブログした画像が表示new_pin_idされる新しいページになります。

特定の画像の代理リブログをカウントする方法はありますか? timestamp表には列もありreblogます。

4

1 に答える 1

2

その答えは、データベースの設計とデータの処理方法にあります。アイテムテーブルが必要になります。item_id、created_when、create_by などのフィールドが含まれます。

次に、私がそのアイテムを最初に送信したときに、item_id を取得します。値として、1 - 47 を指定しましょう。レコードが item テーブルに入り、私のブログ データには item_id 47 が表示されます。ブログに複数のアイテムを含めることができる場合は、設定する必要があることに注意してください。多対多の関係。

次に、Bloggins が私のアイテムをリブログすると、彼のブログ データにも item_id = 47 が表示されます。また、Buddy が Bloggins のアイテムをリブログすると、彼のデータには item_id = 47 が表示されます。

最後に、リブログの数をカウントするには、単純なクエリです

 select count(*) -1 reblogs
 from where_ever
 where item_id = 47
于 2013-10-18T16:10:18.900 に答える