【问题标题】:how does the retweet mechanism work on twitter?推特上的转推机制是如何运作的?
【发布时间】:2011-04-14 07:58:01
【问题描述】:

我正在创建类似于 twitter 转发功能的东西!

这是我的推文数据库表(状态消息):

ID || USER_ID || TWEET || RETWEET_ID || RETWEET_NAME || DATE

我想知道的是,如果登录用户转推某些内容,当他们刷新页面时,我不希望他们看到转推按钮(因为显然他们已经转推了)。我更关心应用逻辑;快把我逼疯了。

附言使用 while 循环数组查询用户的时间线,所以它必须区分普通推文和转发推文,如果你明白我的意思!! :))

编辑:另一件事是,如果它是一条普通的推文,则 RETWEET_ID 和 RETWEET_NAME 的值都是 NULL,所以我可以区分这两者!

【问题讨论】:

  • 我想有一个单独的转推表,然后我可以参考它!
  • 这听起来是一个更好的主意,而不是在你的 tweets 表中添加那些额外的字段。然后你会知道用户是否转发了一些东西,使用一个简单的查询来查找 tweet_id + user_id
  • 是的,我也是这么想的!!! :)) 干杯

标签: php mysql arrays while-loop


【解决方案1】:

只是从我的角度添加一些提示,您还可以在两个表中添加推文和转发的时间和日期,一旦您拥有 json 数据并在您的后端代码中将其操作为像字典一样的对象,您可以加入两个结果并按时间和日期对其进行排序。所以这种方式总是看起来像一个升序。美好的一天。

编辑:此外,由于每条推文都有一个唯一的 ID,因此对于转发,您可以创建将转发推文的人的 ID 和推文密钥连接起来的密钥。我看不出为转推创建新 ID 的意义,但这是我的观点。感谢阅读。

【讨论】:

    【解决方案2】:

    我看到两个选项

    1) 你使用的和现在的差不多

    ID || USER_ID || TWEET_TEXT || RETWEET_ID || DATE
    

    但删除转推名称。如果每个推文 id 都是唯一的,那么您的推文将包含一个 tweet_text 或一个 retweet_id。

    2) 第二种选择,更好的解决方案是有两个表格,tweet 和 retweets。

    TWEETS { ID || USER_ID || TWEET_TEXT || DATE }
    RETWEETS {ID || USER_ID || RETWEET_ID || DATE }
    

    第二个选项更简洁,意味着您的数据库中不会有空列,但第一个选项将使您的查询更容易,因为您不必连接两个表,或在表上创建视图等等

    【讨论】:

    • 我喜欢第二个选项,但我还是很困惑
    • 这里也一样。我也想知道。如果我使用第二个选项,如何通过推文和转推来整理结果?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多