转发机制如何在Twitter上运行?

时间:2010-09-19 13:02:51

标签: php mysql arrays while-loop

我正在为推特转推功能创造类似的东西!

这是推特(状态讯息)的数据库表:

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

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

P.S。使用while循环数组查询用户的时间轴,因此如果你得到我的漂移,它必须区分正常的推文和转推的推文! :))

编辑:另一件事是如果它是正常的推文,则值RETWEET_ID和RETWEET_NAME都是NULL,这就是我如何区分这两个值!

2 个答案:

答案 0 :(得分:2)

我看到两个选项

1)你使用类似于现在的

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

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

2)第二个选项,更好的解决方案是拥有两个表,推文和转推。

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

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

答案 1 :(得分:0)

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

编辑:同样,因为每条推文都有唯一的ID,对于转推,您可以创建加入转发它的人的ID和推文密钥的密钥。我没有看到为转推创建新ID的重点,但这是我的看法。谢谢你的阅读。