从零开始搭建自己的网站三:数据库设计

数据库设计:

1、用户表

尽管用户只有一个,但是还是需要用户表来进行登录到后台进行文章的发布。

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(20) DEFAULT NULL,
  `password` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

2、文章表

这里我文章表中没有放入文章的内容。因为我的文章是用ueditor来进行编辑,完成编辑后,字段内容长度会很大。而且考虑到很多情况点击量是在首页产生,首页的展示也是不需要展示内容。所以当需要查看特定的文章的时候单独查询内容表展示即可

CREATE TABLE `article` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `contentId` int(11) DEFAULT NULL COMMENT '内容ID',
  `title` varchar(255) DEFAULT NULL COMMENT '标题',
  `abstr` varchar(255) DEFAULT NULL COMMENT '描述',
  `categoryId` varchar(2) DEFAULT NULL COMMENT '类别',
  `categoryValue` varchar(20) DEFAULT NULL,
  `imgurl` varchar(70) DEFAULT NULL COMMENT '图片地址',
  `createDate` date DEFAULT NULL COMMENT '创建日期',
  `top` varchar(2) DEFAULT NULL COMMENT '1为热门文章',
  `key` varchar(20) DEFAULT NULL COMMENT '关键字',
  `keyValue` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=43 DEFAULT CHARSET=utf8;

3、内容表

CREATE TABLE `content` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` longtext COMMENT '内容',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8;

4、类别表

类别是主要分类,同一类别下的文章又会有不同的关键字。

CREATE TABLE `category` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `chiName` varchar(20) DEFAULT NULL COMMENT '类别名称',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

5、关键字表

CREATE TABLE `keyword` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `value` varchar(20) DEFAULT NULL COMMENT '关键字',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

6、点击量和评论量表

点击量是变化频率最高的一个字段。

CREATE TABLE `artcount` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `click` int(20) DEFAULT NULL COMMENT '点击量',
  `comment` int(20) DEFAULT NULL COMMENT '评论量',
  `articleId` int(11) DEFAULT NULL COMMENT '文章ID',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

7、评论表

CREATE TABLE `comment` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `content` varchar(255) DEFAULT NULL COMMENT '评论内容',
  `articleId` varchar(11) DEFAULT NULL COMMENT '文章ID',
  `date` date DEFAULT NULL COMMENT '评论时间',
  `ip` varchar(20) DEFAULT NULL COMMENT '评论的IP地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

8、其他表

这里什么广告表,友情链接表啊目前暂时就不考虑了。只设计了一张每日一句的语言表。

CREATE TABLE `good` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `chiContent` varchar(100) DEFAULT NULL,
  `engContent` varchar(100) DEFAULT NULL,
  `date` date DEFAULT NULL,
  `author` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;

欢迎转载,转载请注明出处 http://www.dingyinwu.com/article/43.html 

如果文章中有任何问题或者可以改进的地方,请大家多提提意见,我会非常感激。

评论 抢沙发

表情
  1. #1

    来自 匿名 的用户 (2018-04-02 00:00:00)

    为啥没用外键呢???

    回复
  2. #2

    来自 匿名 的用户 (2018-04-02 00:00:00)

    关键词为什么还单独列出来一张表呢

    回复
  3. #3

    来自 匿名 的用户 (2018-04-11 00:00:00)

    建议不使用外键与级联,一切外键概念必须在应用层解决。外键与级联更新适用于单机低并发,不适合分布式、高并发集群;级联更新是强阻塞,存在数据库更新风暴的风险;外键影响数据库的插入速度。关键词单独一张表是为了方便后台进行关键词维护

    回复
  4. #4

    来自 匿名 的用户 (2018-07-02 00:00:00)

    不注册可以评论吗?

    回复
    匿名: 我试一下能不能评论
    2019-07-15 10:13:00
  5. #5

    来自 匿名 的用户 (2018-07-12 00:00:00)

    看不懂

    回复
  6. #6

    来自 匿名 的用户 (2018-08-31 00:00:00)

    123

    回复
  7. #7

    来自 匿名 的用户 (2019-05-20 18:52:02)

    223.104.63.159
    回复
  8. #8

    来自 匿名 的用户 (2019-05-28 13:54:06)

    不注册可以评论吗?

    124.65.136.94
    回复
  9. #9

    来自 匿名 的用户 (2019-05-31 14:28:36)

    请问你这是用什么来写数据库的?

    223.104.247.228
    回复
  10. #10

    来自 匿名 的用户 (2019-06-24 17:03:07)

    测试是否可以评论

    116.255.132.12
    回复
  11. #11

    来自 匿名 的用户 (2019-07-01 01:45:20)

    .

    221.197.56.245
    回复
  12. #12

    来自 匿名 的用户 (2019-07-15 10:21:11)

    不注册可以评论吗

    111.116.1.151
    回复
Title