2010-09-19 30 views
1

我正在創建類似的東西給Twitter的轉推功能!轉推機制如何在Twitter上工作?

這是我的鳴叫數據庫表(狀態信息):

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

我試圖找出,如果登錄的用戶轉推的東西,當他們刷新頁面我不希望他們看到轉推按鈕(因爲顯然他們轉推了它)。我更關心應用邏輯;這讓我瘋狂。

p.s.使用while循環數組查詢用戶的時間線,因此如果你得到我的漂移,它必須區分正常的推文和轉推的推文。 :))

編輯:另一件事是,如果它是一個正常的鳴叫,這兩個值RETWEET_ID和RETWEET_NAME都是NULL,所以這就是我如何區分這兩個!

+0

我想有一個單獨的轉推表,然後我可以參考它! – getaway 2010-09-19 13:08:27

+1

這聽起來像是一個更好的主意,而不是在你的推文表中包含這些額外的字段。然後,你就會知道用戶是否使用簡單的查詢重新編輯了一些內容,尋找tweet_id + user_id – Fanis 2010-09-19 13:24:50

+0

你好,我也想到了! :))歡呼 – getaway 2010-09-19 13:25:55

回答

2

我看到兩個選項

1)使用類似於你有什麼現在

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

但下降的轉推的名字。如果每個推文ID都是唯一的,那麼您的推文將包含tweet_text或retweet_id。

2)第二個選項,更好的解決方案是有兩個表,tweets和retweets。

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

第二個選項是更清潔,並且將意味着你不會在你的數據庫空列,但第一個選項會讓你的查詢更容易,因爲你沒有加入這兩個表,或創建一個在桌子上查看等

+2

我喜歡第二種選擇,但即時通訊仍然困惑 – getaway 2010-09-19 15:48:22

+0

相同在這裏。我也想知道。如果我使用第二個選項如何用tweets和retweet整理結果? – Kavin 2015-02-11 06:13:19

0

只是爲了增加我的觀點一些提示,你也可以添加到這兩個表的推文和轉推的時間和日期,一旦你有JSON數據並操縱它成爲一本字典像你的後彎代碼中的對象一樣,你可以加入兩個結果並按時間和日期對它進行排序。所以這種方式總是看起來像一個方興未艾的訂單。很好的一天。

編輯:另外,由於每條推文都有一個唯一的ID,因此對於轉發,您可以創建加入推薦人的ID和推特密鑰的密鑰。我沒有看到爲轉發創建新的ID,但這是我的看法。謝謝閱讀。