标签表

CREATE TABLE `t_tags` (
    `t_id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '标签ID',
    `t_name` varchar(200) NOT NULL DEFAULT '' COMMENT '标签名称',
    `t_cname` varchar(200) NOT NULL DEFAULT '' COMMENT '标签别名',
    `t_count` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '含有标签的对象集合数目',
    PRIMARY KEY (`t_id`),
    UNIQUE KEY `cname` (`t_cname`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

关联表(多对多的映射)

CREATE TABLE `t_tag_relationships` (
    `tr_objectid` int(11) NOT NULL DEFAULT '0' COMMENT '含有tag的对象ID,如文章,视频,图片对应ID',
    `t_id` int(11) NOT NULL COMMENT '标签ID',
    PRIMARY KEY (`tr_objectid`,`t_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

查询指定文章下的tags信息

SELECT t_id, t_name, t_cname FROM t_tags WHERE t_id IN( 
    SELECT t_id FROM t_tag_relationships WHERE tr_objectid=1006
);

查询指定文章相关tag信息的文章

SELECT tr_objectid FROM t_tag_relationships WHERE t_id IN( 
    SELECT t_id FROM t_tag_relationships WHERE tr_objectid=1006
) AND tr_objectid != 1006;

Nginx 自动禁止爬虫IP采集

### 背景最近我们有一个公开服务提供给客户查询关键词的热度值,由于这个API做在官方网站上,自然没有用户登陆,也没有很高查询成本,所以设计上没有任何鉴权无法进行身份认定,于是就被一个爬虫开了超高并发请求,直接后端的AWS Tomcat CPU被用尽,导致无法响应。爬虫显然...… Continue reading

Redis原子性事务Lua应用

Published on June 28, 2020