数据库设计--个人博客
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
个人博客数据库设计
一、项目概述及分析
1.项目背景
随着互联网的发展,越来越多的人拥有了自己的个人博客。但是大多数采用的是网上别人做好的博客模板,众所周
知,网上的模板并不是单独为个人而定制,而是面向大多数人的,独立设计一个博客,满足自己的需求。
2.分析
系统主要完成以下几方面的功能:
●用户管理:用户的注册和登录,发表博文和评论。
●博文管理:用户可以在网站中发表和设置博文。
●评论管理:用户可以评论博文和回复其他用户的评论。
●分类管理:添加和删除分类,给文章设置分类。
●标签管理:添加和删除标签,给文章设置标签。
二、数
据库
概念
模型
设计
—基
本ER
图
三、数据库逻辑模型设计
四、数据库语句
1.建立数据表语句
CREATE TABLE `zj_users` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`user_ip` varchar(20) NOT NULL COMMENT '用户IP',
`user_name` varchar(20) NOT NULL COMMENT '用户名',
`user_password` varchar(15) NOT NULL COMMENT '用户密码',
`user_email` varchar(30) NOT NULL COMMENT '用户邮箱',
`user_profile_photo` varchar(255) NOT NULL COMMENT '用户头像',
`user_registration_time` datetime DEFAULT NULL COMMENT '注册时间',
`user_birthday` date DEFAULT NULL COMMENT '用户生日',
`user_age` tinyint(4) DEFAULT NULL COMMENT '用户年龄',
`user_telephone_number` int(11) NOT NULL COMMENT '用户手机号',
`user_nickname` varchar(20) NOT NULL COMMENT '用户昵称',
PRIMARY KEY (`user_id`),
KEY `user_name` (`user_name`),
KEY `user_nickname` (`user_nickname`),
KEY `user_email` (`user_email`),
KEY `user_telephone_number` (`user_telephone_number`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `zj_articles` (
`article_id` bigint(255) NOT NULL AUTO_INCREMENT COMMENT '博文ID',
`user_id` bigint(20) NOT NULL COMMENT '发表用户ID',
`article_title` text NOT NULL COMMENT '博文标题',
`article_content` longtext NOT NULL COMMENT '博文内容',
`article_views` bigint(20) NOT NULL COMMENT '浏览量',
`article_comment_count` bigint(20) NOT NULL COMMENT '评论总数',
`article_date` datetime DEFAULT NULL COMMENT '发表时间',
`article_like_count` bigint(20) NOT NULL,
PRIMARY KEY (`article_id`),
KEY `user_id` (`user_id`),
CONSTRAINT `zj_articles_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `zj_users` (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `zj_comments` (
`comment_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`user_id` bigint(20) NOT NULL COMMENT '发表用户ID',
`article_id` bigint(20) NOT NULL COMMENT '评论博文ID',
`comment_like_count` bigint(20) NOT NULL COMMENT '点赞数',
`comment_date` datetime DEFAULT NULL COMMENT '评论日期',
`comment_content` text NOT NULL COMMENT '评论内容',
`parent_comment_id` bigint(20) NOT NULL COMMENT '父评论ID',
PRIMARY KEY (`comment_id`),
KEY `article_id` (`article_id`),
KEY `comment_date` (`comment_date`),
KEY `parent_comment_id` (`parent_comment_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
CREATE TABLE `zj_labels` (
`label_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '标签ID',
`label_name` varchar(20) NOT NULL COMMENT '标签名称',
`label_alias` varchar(15) NOT NULL COMMENT '标签别名',
`label_description` text NOT NULL COMMENT '标签描述',
PRIMARY KEY (`label_id`),
KEY `label_name` (`label_name`),
KEY `label_alias` (`label_alias`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `zj_set_artitle_label` (
`article_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '文章ID',
`label_id` bigint(20) NOT NULL,
PRIMARY KEY (`article_id`),
KEY `label_id` (`label_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
CREATE TABLE `zj_set_artitle_sort` (
`article_id` bigint(20) NOT NULL COMMENT '文章ID',
`sort_id` bigint(20) NOT NULL COMMENT '分类ID',
PRIMARY KEY (`article_id`,`sort_id`),
KEY `sort_id` (`sort_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;