转载请注明出处:http://www.voidcn.com/article/p-syemvhuu-bkz.html
http://www.llwjy.com/blogdetail/fa404163e42295646ab6e36e1ddb1037.html
个人博客站已经上线了,网址 www.llwjy.com 欢迎各位吐槽
首先和大家说一声抱歉,由于最近公司和个人的原因,博客停更已经有一个月了,最近自己会慢慢的恢复博客的更新。
在前面的几篇中已经介绍了纵横中文小说网的采集,这篇博客就介绍下数据库的设计。
设计思路
对于纵横中文小说网的四个采集类,我们将设计四张表来存储相关的信息。表crawllist主要存储采集的入口,存储着采集的地址、采集状态和采集频率;表novelinfo存储由更新列表页采集程序得到的url,并通过简介页采集程序将其他的信息更新完整;表novelchapter存储由章节列表采集程序得到的信息;表novelchapterdetail存储由小说阅读页采集程序得到的信息。表novelchapterdetail的信息可以合并到表novelchapter中,但这里为了以后的拓展需要,特意将其分开。
在这些表中,添加一个state字段,该字段标识这该项目下的url是否需要采集,这个字段是实现分布式采集的关键所在。
表设计图
sql文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86 1/*
2Navicat MySQL Data Transfer
3
4Source Server : 本机数据库
5Source Server Version : 50151
6Source Host : localhost:3306
7Source Database : novel
8
9Target Server Type : MYSQL
10Target Server Version : 50151
11File Encoding : 65001
12
13Date: 2015-05-13 15:37:35
14*/
15
16SET FOREIGN_KEY_CHECKS=0;
17
18-- ----------------------------
19-- Table structure for `crawllist` 小说采集入口
20-- ----------------------------
21DROP TABLE IF EXISTS `crawllist`;
22CREATE TABLE `crawllist` (
23 `id` bigint(20) NOT NULL AUTO_INCREMENT,
24 `url` varchar(100) NOT NULL,##采集url
25 `state` enum('1','0') NOT NULL,##采集状态
26 `info` varchar(100) DEFAULT NULL,##描述
27 `frequency` int(11) DEFAULT '60',##采集频率
28 PRIMARY KEY (`id`)
29) ENGINE=InnoDB DEFAULT CHARSET=utf8;
30
31-- ----------------------------
32-- Table structure for `novelchapter` 小说章节信息
33-- ----------------------------
34DROP TABLE IF EXISTS `novelchapter`;
35CREATE TABLE `novelchapter` (
36 `id` varchar(32) NOT NULL,
37 `url` varchar(100) NOT NULL,##阅读页URL
38 `title` varchar(50) DEFAULT NULL,##章节名
39 `wordcount` int(11) DEFAULT NULL,##字数
40 `chapterid` int(11) DEFAULT NULL,##章节排序
41 `chaptertime` bigint(20) DEFAULT NULL,##章节时间
42 `createtime` bigint(20) DEFAULT NULL,##创建时间
43 `state` enum('1','0') NOT NULL,##采集状态
44 PRIMARY KEY (`id`)
45) ENGINE=InnoDB DEFAULT CHARSET=utf8;
46
47-- ----------------------------
48-- Table structure for `novelchapterdetail` 小说章节详细信息
49-- ----------------------------
50DROP TABLE IF EXISTS `novelchapterdetail`;
51CREATE TABLE `novelchapterdetail` (
52 `id` varchar(32) NOT NULL,
53 `url` varchar(100) NOT NULL,##阅读页url
54 `title` varchar(50) DEFAULT NULL,##章节标题
55 `wordcount` int(11) DEFAULT NULL,##字数
56 `chapterid` int(11) DEFAULT NULL,##章节排序
57 `content` text,##正文
58 `chaptertime` bigint(20) DEFAULT NULL,##章节时间
59 `createtime` bigint(20) DEFAULT NULL,##创建时间
60 `updatetime` bigint(20) DEFAULT NULL,##最后更新时间
61 PRIMARY KEY (`id`)
62) ENGINE=InnoDB DEFAULT CHARSET=utf8;
63
64-- ----------------------------
65-- Table structure for `novelinfo` 小说简介信息
66-- ----------------------------
67DROP TABLE IF EXISTS `novelinfo`;
68CREATE TABLE `novelinfo` (
69 `id` varchar(32) NOT NULL,
70 `url` varchar(100) NOT NULL,##简介页url
71 `name` varchar(50) DEFAULT NULL,##小说名
72 `author` varchar(30) DEFAULT NULL,##作者名
73 `description` text,##小说简介
74 `type` varchar(20) DEFAULT NULL,##分类
75 `lastchapter` varchar(100) DEFAULT NULL,##最新章节名
76 `chaptercount` int(11) DEFAULT NULL,##章节数
77 `chapterlisturl` varchar(100) DEFAULT NULL,##章节列表页url
78 `wordcount` int(11) DEFAULT NULL,##字数
79 `keywords` varchar(100) DEFAULT NULL,##关键字
80 `createtime` bigint(20) DEFAULT NULL,##创建时间
81 `updatetime` bigint(20) DEFAULT NULL,##最后更新时间
82 `state` enum('1','0') NOT NULL,##采集状态
83 PRIMARY KEY (`id`)
84) ENGINE=InnoDB DEFAULT CHARSET=utf8;
85
86
1
2 1 ----------------------------------------------------------------------------------------------------
2
ps:最近发现其他网站可能会对博客转载,上面并没有源链接,如想查看更多关于 基于lucene的案例开发 请 点击这里。或访问网址http://blog.csdn.net/xiaojimanman/article/category/2841877 或 http://www.llwjy.com/blogtype/lucene.html