Mysql 相似系统的数据库模式

Mysql 相似系统的数据库模式,mysql,sql,database,Mysql,Sql,Database,我一直在考虑为我的网站建立一个喜好系统,但我无法确定最好的方法。我正在使用MySQL,现在,我有一个活动表,用于文本、图片、视频等的帖子,还有一个评论表,用于评论。您可以同时喜欢评论和活动帖子,那么我应该如何处理like表中的列呢?我愿意接受将整个模式一起更改以获得更连贯的设计的建议。只需制作一个名为likes的表,其结构如下: `id` int(11) NOT NULL AUTO_INCREMENT, `userid` int(11) NOT NULL, `post_type` varchar

我一直在考虑为我的网站建立一个喜好系统,但我无法确定最好的方法。我正在使用MySQL,现在,我有一个活动表,用于文本、图片、视频等的帖子,还有一个评论表,用于评论。您可以同时喜欢评论和活动帖子,那么我应该如何处理like表中的列呢?我愿意接受将整个模式一起更改以获得更连贯的设计的建议。

只需制作一个名为
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\u type
作为活动,然后
post\u ID
将是帖子ID(显然)

如果有人喜欢评论,你也可以做同样的事情,但是把评论放在帖子类型上

然后,要获得活动帖子的赞:

SELECT * FROM `likes` WHERE post_id = 'id' AND post_type = 'activity'
您只需要用id变量替换
'id'

评论也是如此(当然,除了您需要更改
post\u类型之外)


我希望这能帮助您了解如何为您的网站创建一个类似的系统:)

谢谢!这正是我几分钟前的想法。@Wiz没问题,我很高兴这有帮助。:)