1

如果有人在阅读后可以为这个线程建议一个更好的标题,这将帮助其他有类似问题的人,我会修改它。

我正在尝试计算我的网站上的替代转发数量,该网站目前只计算有机物。

例如

USER1上传图片,USER2转发图片

它现在在 USER1 的图像页面上将转发计数显示为“1”。

问题就在这里。

如果另一个用户(例如 USER3)转发了 USER2 的图像。原始上传者的计数仍为 1。尽管 USER1 的图像被共享了两次。它只计算自然转发。

因此,人们能够利用上传热门图片并获得所有功劳的不太受欢迎的用户。

以下是 SQL 详细信息:

当图像被“转发”时,它会自动将以下详细信息添加到名为 的表中reblog

id repin_user_id owner_user_id from_pin_id new_pin_id

使用我上面的示例,repin_user_id将是 USER2。owner_user_id将是 USER1。from_pin_id将是 USER2 从中重新记录图像的页面,并且new_pin_id将是 USER2 的重新记录图像出现的新页面。

有什么方法可以计算特定图像的替代转发?表中还有一timestampreblog

4

1 回答 1

2

答案在于您的数据库设计和处理数据的方式。您将需要一个项目表。它将包含诸如 item_id、created_when、create_by 等字段。

然后,当我是第一个提交该项目的人时,它会获得一个 item_id。为了一个值,让我们给它一个 - 47。一条记录进入项目表,我的博客数据将显示 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 回答