下面使用 MySQL 数据库来存储小说。
假设我们有一个小说的网站,其中包括了小说的名称、作者、分类、简介、封面图片等信息,以及章节和每章内容。
CREATE TABLE `novel` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`author` varchar(255) DEFAULT NULL,
`category` varchar(255) DEFAULT NULL,
`description` text,
`cover_image` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `chapter` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`novel_id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`create_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_novel_id` (`novel_id`),
CONSTRAINT `fk_novel_id` FOREIGN KEY (`novel_id`) REFERENCES `novel` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `chapter_content` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`chapter_id` int(11) NOT NULL,
`content` longtext,
PRIMARY KEY (`id`),
KEY `idx_chapter_id` (`chapter_id`),
CONSTRAINT `fk_chapter_id` FOREIGN KEY (`chapter_id`) REFERENCES `chapter` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上代码创建了三个表:`novel`、`chapter`、`chapter_content`。
表 `novel` 用来存储小说的基本信息,包括了小说的名称、作者、分类、简介、封面图片等等。
表 `chapter` 用来存储小说的章节信息,包括了每一章的名称、创建时间等等。它与 `novel` 表之间是一对多的关系,即一个小说可以有多个章节。
表 `chapter_content` 则用来存储每一章的具体内容。
我们可以使用下面的 SQL 语句来插入数据:
INSERT INTO `novel` (`name`,`author`,`category`,`description`,`cover_image`)
VALUES ('三体','刘慈欣','科幻','本书通过讲述文明之间的交流与战争,生动地揭示了未来世界的变迁。','https://xxxxxx/cover.jpg');
INSERT INTO `chapter` (`novel_id`,`name`,`create_time`)
VALUES (1,'第一章 红岸之前','2022-04-01 08:00:00');
INSERT INTO `chapter_content` (`chapter_id`,`content`)
VALUES (1,'这是第一章的内容。');
这样,我们就成功地将小说的基本信息、章节信息和每一章的具体内容存储到了 MySQL 数据库中。