2012-08-08 75 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