想做一个微信的朋友圈。一共4张表想查出如下这样的数据发现先查了列表10条,要是想把赞,评论追加进去又要分别查10次库。这样压力好大啊。请教一下高人。这个应怎么样处理??数据库是mysql,语言PHP
$sql = "select f.id,f.uid,f.content,f.picture,f.comefrom,f.inputtime,u.name,u.img from pp_sports_find as f left join pp_user as u on f.uid=u.id limit 0,10"; //查出发现列表$sql = "select count(*) as likes from pp_sports_find_like where find_id=2"; //总赞数
$sql = "select * from pp_sports_find_comment where find_id=2"; //评论列表
四张表如下:CREATE TABLE `pp_sports_find` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL COMMENT '用户ID',
`content` text NOT NULL COMMENT '内容',
`picture` mediumtext COMMENT '图片地址{1.jpg|2.jpg...}',
`comefrom` varchar(30) DEFAULT '' COMMENT '来源位置',
`inputtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发表时间',
`ip` varchar(20) NOT NULL,
`state` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态{0:不显示 1:显示}',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;CREATE TABLE `pp_user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '0',
`passwd` varchar(50) NOT NULL DEFAULT '0',
`img` varchar(255) NOT NULL,
PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE `pp_sports_find_comment` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`find_id` int(10) NOT NULL COMMENT '发现ID号',
`uid` int(10) unsigned DEFAULT '0' COMMENT '用户ID',
`to_id` int(10) DEFAULT NULL,
`content` text COMMENT '评论内容',
`wav` varchar(255) DEFAULT NULL COMMENT '录音',
`wavtimes` int(11) NOT NULL DEFAULT '0' COMMENT '录间时长',
`inputtime` int(10) DEFAULT NULL COMMENT '发布时间',
`ip` varchar(15) DEFAULT NULL COMMENT '用户IP地址',
`status` tinyint(1) DEFAULT '1' COMMENT '评论状态{0:未审核,-1:未通过审核,1:通过审核}',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;CREATE TABLE `pp_sports_find_like` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`find_id` int(10) NOT NULL DEFAULT '0',
`uid` int(10) NOT NULL DEFAULT '0',
`inputtime` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
$sql = "select f.id,f.uid,f.content,f.picture,f.comefrom,f.inputtime,u.name,u.img from pp_sports_find as f left join pp_user as u on f.uid=u.id limit 0,10"; //查出发现列表$sql = "select count(*) as likes from pp_sports_find_like where find_id=2"; //总赞数
$sql = "select * from pp_sports_find_comment where find_id=2"; //评论列表
四张表如下:CREATE TABLE `pp_sports_find` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL COMMENT '用户ID',
`content` text NOT NULL COMMENT '内容',
`picture` mediumtext COMMENT '图片地址{1.jpg|2.jpg...}',
`comefrom` varchar(30) DEFAULT '' COMMENT '来源位置',
`inputtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发表时间',
`ip` varchar(20) NOT NULL,
`state` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态{0:不显示 1:显示}',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;CREATE TABLE `pp_user` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL DEFAULT '0',
`passwd` varchar(50) NOT NULL DEFAULT '0',
`img` varchar(255) NOT NULL,
PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;CREATE TABLE `pp_sports_find_comment` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`find_id` int(10) NOT NULL COMMENT '发现ID号',
`uid` int(10) unsigned DEFAULT '0' COMMENT '用户ID',
`to_id` int(10) DEFAULT NULL,
`content` text COMMENT '评论内容',
`wav` varchar(255) DEFAULT NULL COMMENT '录音',
`wavtimes` int(11) NOT NULL DEFAULT '0' COMMENT '录间时长',
`inputtime` int(10) DEFAULT NULL COMMENT '发布时间',
`ip` varchar(15) DEFAULT NULL COMMENT '用户IP地址',
`status` tinyint(1) DEFAULT '1' COMMENT '评论状态{0:未审核,-1:未通过审核,1:通过审核}',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;CREATE TABLE `pp_sports_find_like` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`find_id` int(10) NOT NULL DEFAULT '0',
`uid` int(10) NOT NULL DEFAULT '0',
`inputtime` int(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
我觉得换个数据库,mongodb试试,它有个特色功能比较适合这种子文档查询不换的话,我肯定会把评论的id冗余到主表里面