带你从零开始,开发一个阅读站第三章,数据库表结构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带你从零开始,开发一个阅读站第三章,数据库表结构相关的知识,希望对你有一定的参考价值。

技术分享

整个项目只有四张表

book-书籍主表,记录书籍的详情信息,包括类别,作者描述等

type-类别表,书籍类别管理

menu-目录章节表

properties-配置表

 

技术分享

book表是书籍主表

code:用于图书code记录,可认为该字段能确定图书唯一

typeId:关联type表主键id,标识图书类别

title:书名

author:作者

lastMenuId:最新章节目录,关联menu表主键id

description:图书描述

originalUrl(废弃不用)

imageUri:图片地址,这个地址是相对地址。记录了图书展示图片的文件名

createTime:图书录入时间

updateTime:最后更新时间

rootTypeId:主类别id,tpye表主键id,详情看type表记录

menuNum:图书目录数量

textSize:当前图书有多少字

 

技术分享

menu章节表:

description:章节名

prevMenuId:上一章节id(menu表主键id)

nextMenuId:下一章节id(menu表主键id)

bookId:图书id(book表主键id)

contentUri:正文地址(此地址是正文文件存储在服务器上的地址)

createTime:章节录入时间

code :章节编码(没有具体作用)

mversion:章节版本控制(防止重复录入)

 

技术分享

type表为图书类别表:

description:类别描述

level:类别等级

parentId:所属父类别

技术分享

类别建立如上所述,level为1的是主类别,其下lever为2的即为子类别。子类别的parentId关联父类别的主键id。主类别没有父类别,即parentId为0

这里需要提一点的是,父类主键*100再递增作为子类别的主键id。如id为101的父类别的id为1

 技术分享

properties表做配置用,考虑下一版本将程序里的配置放在properties里。

现在这张表只有一条配置

技术分享

pKey:为程序读取到相应pValue的值,在首页做跑马灯显示

 

 

此处给出表创建脚本,供大家参考:

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for book
-- ----------------------------
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 图书主表,
  `code` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 图书编码(默认图书目录地址,也是图书文件保留目录),
  `typeId` int(11) DEFAULT NULL COMMENT 类别,
  `title` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 书名,
  `author` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 作者,
  `lastMenuId` int(11) DEFAULT 0 COMMENT 最新章节目录Id,
  `description` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT 简介描述,
  `originalUrl` varchar(200) COLLATE utf8_bin DEFAULT NULL COMMENT 已废弃,
  `imageUri` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 图片地址,
  `createTime` timestamp NULL DEFAULT NULL COMMENT 创建时间,
  `updateTime` timestamp NULL DEFAULT NULL COMMENT 更新时间,
  `rootTypeId` int(11) DEFAULT NULL COMMENT 主类别,
  `menuNum` int(11) DEFAULT 0 COMMENT 章节总数,
  `textSize` bigint(18) DEFAULT 0 COMMENT 小说字数,
  PRIMARY KEY (`id`),
  UNIQUE KEY `index_title` (`code`) USING BTREE,
  KEY `FK_mxn08ipa84r1evyt2cnn7jkpi` (`typeId`,`rootTypeId`),
  KEY `FK_6ji3nbliycexuj771dlqn25s3` (`lastMenuId`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
-- Table structure for menu
-- ----------------------------
DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT 描述,
  `prevMenuId` int(11) DEFAULT 0 COMMENT 上一章id,
  `nextMenuId` int(11) DEFAULT 0 COMMENT 下一章id,
  `bookId` int(11) DEFAULT NULL COMMENT 图书id,
  `contentUri` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT 文本路径,
  `createTime` timestamp NULL DEFAULT NULL COMMENT 创建时间,
  `code` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 编码(做索引),
  `mversion` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mvserion` (`mversion`) USING BTREE,
  KEY `FK_c6rhyxr26doitte59912cid6v` (`bookId`),
  CONSTRAINT `menu_ibfk_1` FOREIGN KEY (`bookId`) REFERENCES `book` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=231 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
-- Table structure for properties
-- ----------------------------
DROP TABLE IF EXISTS `properties`;
CREATE TABLE `properties` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `pKey` varchar(45) COLLATE utf8_bin NOT NULL,
  `pValue` varchar(256) COLLATE utf8_bin NOT NULL,
  `description` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 描述,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

-- ----------------------------
-- Table structure for type
-- ----------------------------
DROP TABLE IF EXISTS `type`;
CREATE TABLE `type` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `description` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT 类别描述,
  `level` int(11) DEFAULT NULL COMMENT 类别等级,
  `parentId` int(11) unsigned DEFAULT 0 COMMENT 父类别,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=702 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

以上是关于带你从零开始,开发一个阅读站第三章,数据库表结构的主要内容,如果未能解决你的问题,请参考以下文章

带你从零开始,开发一个阅读站第二章,技术选型

带你从零开始,开发一个阅读站第五章,前端模板介绍

带你从零学ReactNative开发跨平台App开发

带你从零学ReactNative开发跨平台App开发

手把手带你从零开始完整开发经典游戏俄罗斯方块,全部逻辑只用不到200行代码。

带你从零学ReactNative开发跨平台App开发