我對一些項目感興趣,並且正在考慮追隨者和跟隨系統像twitter.I有成員表在數據庫。我怎麼能做追隨者系統。什麼是邏輯?我工作關於這樣的事情:我創建了新的表名稱在下面,我有3行。這些行是id,user_id,follower_id。對我來說足夠了嗎?我不知道如何做這個系統?你可以幫我嗎?追隨者和追隨者系統的邏輯是什麼?
5
A
回答
5
是,設計是足夠簡單的下列系統如Twitter的。當然,一些額外的數據(例如@Ina建議的時間戳)可能會很有用,並且您並不需要其中的id
。
我建議是這樣的:
userID INT PRIMARY,
followID INT PRIMARY,
creationTime DATETIME
0
假設您只有一個實體People
,您需要創建一個從People
到People
的多對多關係。在您的關聯表中,您將有兩列,分別爲PeopleID
和Following
。
要找到用戶的關注者,請在Following
列中搜索該用戶的ID。 要列出用戶關注的是誰,請在PeopleID
列中進行搜索。
5
「跟隨」(或「隨後是」)是您的表反映的兩個用戶實體之間的關係。
這意味着,除非您計劃將多個跟隨和取消跟進作爲單獨的條目處理相同的用戶,否則您甚至不需要id
。
充分利用user_id
和follower_id
參考user
與FOREIGN KEY
,讓他們倆複合主鍵和follower_id
創建索引(以獲得用戶的列表中選擇一個遵循快速):
CREATE TABLE
follows
(
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
PRIMARY KEY
(user_id, follower_id)
KEY follower_id (follower_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
您也可加入其他屬性也是如此。
如果你想跟蹤遵循和相同的用戶之間unfollows那麼你需要推廣到實體此,增加了代理主鍵:
CREATE TABLE
follows
(
id INT NOT NULL PRIMARY KEY,
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
-- These are additional attributes
follows_from DATETIME NOT NULL,
follows_till DATETIME,
--
KEY follower_id (follower_id),
KEY user_id (user_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
0
假設你已經有了,用戶登錄一個網站,你會想要一個表添加到您的數據庫中有兩列,無論是「朋友1」和「朋友2「(假設友誼是雙向關係)或」領導者「和」追隨者「(針對訂閱的單向關係)。然後,您需要一個簡短的PHP腳本,它將friend1和friend2作爲輸入(例如,作爲POST或GET變量),並將該對輸入到數據庫中。最後,在你的網站上添加一個按鈕,或者對該PHP腳本進行AJAX調用,或者是目標是該PHP腳本的HTML表單的一部分。
相關問題
- 1. django中的用戶追隨者系統
- 2. 追隨者系統,MySQL或Redis更好?
- 3. PDO讓追隨者
- 4. Twitter追隨者數
- 5. '追隨者'和效率
- 6. Twitter4j獲得最多追隨者人數的追隨者
- 7. 是否有一些django應用程序來管理追隨者和追隨者?
- 8. Twitter追隨者的點數
- 9. Twitter追隨者人口統計數據?
- 10. Jquery,JSON twitter追隨者數
- 11. Ruby追隨者查詢
- 12. Twython得到追隨者數
- 13. HABTM mongoid關注/追隨者
- 14. Instagram Web抓取追隨者
- 15. Heroku追隨者延遲
- 16. 檢查StumbleUpon追隨者
- 17. Heroku主從「追隨者」postgresql
- 18. 加入用戶和追隨者表
- 19. 最好的JGroups堆棧配置領導者/追隨者關係
- 20. 什麼是每個followee計數二級追隨者?
- 21. 爲什麼Facebook追隨者在Safari和IE8中沒有顯示?
- 22. 獲取Twitter的追隨者用戶名
- 23. PHP Twitter的追隨者 - 如果錯誤
- 24. Twitter的追隨者在iPhone SDK
- 25. Neo4J - 簡單的「追隨者」圖
- 26. Twitter的追隨者人數爲
- 27. 在R的查找Twitter追隨者
- 28. 使用yql的嗡嗡聲追隨者
- 29. 在laravel,我得到當前用戶的視圖作爲自身的一個追隨者,而不是追隨者
- 30. 紅寶石Twitter的寶石追隨者方法重複20次,而不是顯示前20名追隨者
這似乎是一個完全可以接受的設計。您可以通過在'user_id'中搜索該用戶並通過在'follower_id'中搜索該用戶來查找用戶關注的用戶,從而找到用戶的關注者。您可能希望包含一些額外的元數據,例如時間戳,以便知道關係上次更新的時間。您也可能希望跟蹤關係何時開始或結束,具體取決於您的用例。 – Ina 2012-04-23 19:18:38
_「我創建了新的表,名稱是下面,我有3行」_ - 你的意思是「3 **列**」? – 2012-04-23 21:01:52