好吧,我一直在寻找和发现这个主题, 但没什么令人满意的。
我想跟踪谁喜欢什么,而不仅仅是为表添加+1。
我有三个表:帖子,评论和喜欢。
表格设计目前看起来像这样
CREATE TABLE IF NOT EXISTS `likes` (
`like_id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`post_id_fk` INT(11),
`comment_id_fk` INT(11),
`uid_fk` int(11) NOT NULL,
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`ip` varchar(39) COLLATE utf8_unicode_ci NOT NULL DEFAULT '0.0.0.0',
FOREIGN KEY (uid_fk) REFERENCES users(uid),
FOREIGN KEY (post_id_fk) REFERENCES post(post_id),
FOREIGN KEY (comment_id_fk) REFERENCES comments(comments_id),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;
正如你可以看到我有三个不同的外键,uid_fk为用户uid所以我可以知道谁喜欢什么。现在有问题,一个是post_id的外键,另一个是comments_id。
如果它不存在,Mysql不会接受外键。如果我想"喜欢"评论,因为post_id_fk的外键,它不会被允许。如何解决这个数据库混乱?
AJAX喜欢/ delike问题:
我在搜索时发现了这个jQuery : Changing class of button with AJAX call,看起来很简单,非常好看。我也遵循这个http://pluscss.com/tutorials/ajax-like-script-using-php-mysql-jquery教程。但是我遇到了问题并将它们结合起来。
这就是我想要做的事情:
使用ajax和like.php
有人可以帮助我,我会非常感激!
答案 0 :(得分:1)
将表格分开会更好。 创建post_likes表和comments_likes表。 这样,你不仅可以摆脱现有的问题,而且结构更加分离,更可重复使用。