类似系统的数据库模式

时间:2012-08-08 01:42:59

标签: mysql sql database

我一直在考虑为我的网站设置一个喜欢的系统,而我无法确定接近它的最佳方式。我正在使用MySQL,现在,我有一个活动表,用于文本,图片,视频等的帖子,以及评论表。您可以同时阅读评论和活动帖子,那么我应该如何处理相似表格的列?我乐于接受改变整个架构的建议,以便进行更加连贯的设计。

1 个答案:

答案 0 :(得分:15)

只需创建一个名为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)。

我希望这可以帮助您了解如何为您的网站制作类似的系统:)