2012-08-08 89 views
5

我一直在想我的網站的喜歡系統,我不能確定接近它的最佳方式。我正在使用MySQL,現在,我有一個活動表,用於發表文章,圖片,視頻等的帖子,以及評論表,以供評論。你可以喜歡評論和活動帖子,所以我應該如何處理類似表格的列?我很樂意提出改變整個架構的建議,以實現更一致的設計。類似系統的數據庫模式

回答

11

只是做一個叫likes表這樣的結構:

`id` int(11) NOT NULL AUTO_INCREMENT, 
`userid` int(11) NOT NULL, 
`post_type` varchar(10) NOT NULL, 
`post_id` int(11) NOT NULL, 
`date` datetime NOT NULL, 
PRIMARY KEY (`id`) 

然後,每當有人喜歡的活動後,你會插入該用戶的ID,該post_type活動,然後post_id將會是帖子ID(顯然)。

如果有人喜歡評論,你會做同樣的事情,但評論而不是。

然後拿到喜歡的一項活動後:

SELECT * FROM `likes` WHERE post_id = 'id' AND post_type = 'activity' 

你只需要與ID變量來代替'id'

同樣的評論(除非你需要改變post_type當然)。

我希望這可以幫助您瞭解如何爲您的網站製作一個類似的系統:)

+0

謝謝!那正是我幾分鐘前想的。 – Wiz 2012-08-08 03:01:00

+0

@Wiz沒問題,我很高興它有幫助。 :) – Nathan 2012-08-08 03:04:27