博客系统——3、数据库表设计 - 博客标签表

任务描述

本关任务:在博客数据库中建立博客标签表。

相关知识

多对多关系的建立

每一个博客都可以设置很多个标签,比如一篇讲JavaWeb知识的博客,就可能会涉及到多个标签如:前端、后端、JavaSpringMVC等标签,而一个标签也可能对应多个博客,比如“后端”这个标签就可能对应很多博客,如:Python博客、Java博客、.net博客等。 所以我们应该讲博客标签表与博客表设计成一个多对多的关系,那么应该怎么设计呢?这是我们要思考的问题。

我们对博客标签表与博客信息表设计如下图所示:

设计了一个中间表,分别与博客信息表和博客标签表是一对多的关系,这样博客标签表(t_tag)就和博客信息表(t_blog)是多对多的关系了。

编程要求

请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下:

  • 根据设计图,创建博客标签表(t_tag),以及中间表(t_tag_blog),并建立表与表之间的联系。外键名分别为FK_blog_idFK_tag_id。第一个外键对应的是博客信息表的的ID,第二个外键对应的是标签表的ID

测试说明

补充完代码后,点击测评,平台会对你编写的代码进行测试,当你的结果与预期输出一致时,即为通过。


开始你的任务吧,祝你成功!

原题代码

use blog_db;
CREATE TABLE `t_user` (`userId` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',`username` varchar(32) NOT NULL COMMENT '用户名',`password` varchar(32) NOT NULL COMMENT '用户密码',`user_sex` varchar(6) NOT NULL DEFAULT '0' COMMENT '用户性别',`email` varchar(64) DEFAULT NULL COMMENT '用户邮箱',`phone` varchar(11) NOT NULL COMMENT '手机号码',`firstname` varchar(6) DEFAULT NULL COMMENT '姓',`lastname` varchar(12) DEFAULT NULL COMMENT '名',`avatar` varchar(255) DEFAULT NULL COMMENT '头像地址',`is_superuser` int NOT NULL DEFAULT '0' COMMENT '是否是管理员 1代表 是 0代表不是',`last_login` datetime DEFAULT NULL COMMENT '上一次登录时间',`user_register_time` datetime DEFAULT NULL COMMENT '用户注册时间',PRIMARY KEY (`userId`)
);CREATE TABLE `blog_type` (`type_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '类型ID',`type_name` varchar(32) NOT NULL COMMENT '类型名称',PRIMARY KEY (`type_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;CREATE TABLE `t_blog` (`blog_id` bigint NOT NULL AUTO_INCREMENT COMMENT '博客ID',`blog_title` varchar(100) NOT NULL COMMENT '博客标题',`blog_content` longtext NOT NULL COMMENT '博客内容',`userid` bigint DEFAULT NULL COMMENT '创建人ID',`type_id` int(11) DEFAULT NULL COMMENT '类型ID',`blog_status` int(11) NOT NULL DEFAULT '0' COMMENT '博客状态 1为发布 0为草稿',`create_time` datetime NOT NULL COMMENT '创建时间',`update_time` datetime NOT NULL COMMENT '更新时间',`cover_image` varchar(255) DEFAULT NULL COMMENT '封面图片',PRIMARY KEY (`blog_id`),KEY `FK_type_id` (`type_id`),KEY `FK_user_id` (`userid`),CONSTRAINT `FK_type_id` FOREIGN KEY (`type_id`) REFERENCES `blog_type` (`type_id`),CONSTRAINT `FK_user_id` FOREIGN KEY (`userid`) REFERENCES `t_user` (`userId`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8;CREATE TABLE `t_comment` (`comment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论id',`comment_content` varchar(500) NOT NULL COMMENT '评论内容',`blog_id` bigint NOT NULL COMMENT '博客ID',`createtime` datetime NOT NULL COMMENT '评论时间',`userid` bigint NOT NULL COMMENT '评论人ID',`replyid` int(11) NOT NULL,PRIMARY KEY (`comment_id`),KEY `FK_comment_blog_id` (`blog_id`),KEY `FK_comment_user_id` (`userid`),CONSTRAINT `FK_comment_blog_id` FOREIGN KEY (`blog_id`) REFERENCES `t_blog` (`blog_id`),CONSTRAINT `FK_comment_user_id` FOREIGN KEY (`userid`) REFERENCES `t_user` (`userId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;#请在此添加实现代码
########## Begin ##########
#创建博客标签表(t_tag),并建立表之间的关系########## End ##########

实验代码

#请在此添加实现代码
########## Begin ##########
#创建博客标签表(t_tag),并建立表之间的关系
create table t_tag(tag_id int AUTO_INCREMENT PRIMARY KEY,tag_name varchar(32) NOT NULL
);
create table t_tag_blog(tag_id int,blog_id bigint,constraint FK_blog_id FOREIGN KEY (tag_id) references t_tag(tag_id),constraint FK_tag_id FOREIGN KEY (blog_id) references t_blog(blog_id)
);
########## End ##########

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/773267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

碳课堂|什么是碳资产?企业如何进行碳资产管理?

碳资产是绿色资产的重要类别,在全球气候变化日益严峻的背景下备受关注。在“双碳”目标下,碳资产管理是企业层面实现碳减排目标和低碳转型的关键。 一、什么是碳资产? 碳资产是以碳减排为基础的资产,是企业为了积极应对气候变化&…

Kubernetes示例yaml:1. service-deployment.yaml

service-deployment.yaml 示例 apiVersion: apps/v1 kind: Deployment metadata:name: example-plusnamespace: aaaalabels:app: example-prdapp_unit: AAAA-EXAMPLE spec:replicas: 2selector:matchLabels:app: example-prdtemplate:metadata:labels:app: example-prdapp_uni…

常见位运算的总结

目录 一、基础位运算 二、给一个数n,确定它的二进制中的第x位是0还是1 三、将一个数n的二进制表示的第x位修改成1 四、将一个数n的二进制位表示的第x位修改成0 五、位图思想 六、提取一个数(n)二进制表示中最右侧的1(lowbit) 七、干掉一个数n的最右侧的1 八、…

1.5T数据惨遭Lockbit3.0窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件93起,近三周攻击数量呈现持平状态。 本周Lockbit3.0是影响最严重的勒索家族,Blacksuit和Ransomhub恶意家族紧随其后,从整体上看Lockbit3.0依旧是影响最严重的勒索家族,需要注意防范。 …

神经网络代码实现(用手写数字识别数据集实验)

目录 一、前言 二、神经网络架构 三、算法实现 1、导入包 2、实现类 3、训练函数 4、权重参数矩阵初始化 5、参数矩阵变换向量 6、向量变换权重参数矩阵 7、进行梯度下降 7.1、损失函数 7.1.1、前向传播 7.2、反向传播 8、预测函数 四、完整代码 五、手写数字识别 一、前言 …

LVS负载均衡(load balance)

一 LVS LVS:Linux Virtaul Server,该软件的功能是实现 LB(load balance) 二LVS 的三种工作模式 1.NAT 模式(NAT) LVS 服务器同时充当一台 NAT 网关,拥有公有 IP ,同时负责将针对此…

数据结构——队列(C语言版)

前言: 在学习完数据结构顺序表和链表之后,其实我们就可以做很多事情了,后面的栈和队列,其实就是对前面的顺序表和链表的灵活运用,今天我们就来学习一下队列的原理和应用。 准备工作:本人习惯将文件放在test…

美国大选献金项目数据分析

需求 加载数据查看数据的基本信息指定数据截取,将如下字段的数据进行提取,其他数据舍弃 cand_nm :候选人姓名contbr_nm : 捐赠人姓名contbr_st :捐赠人所在州contbr_employer : 捐赠人所在公司contbr_occu…

搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

目录 搭建开发环境 1. 下载Flutter SDK 2. 设置镜像地址及环境变量 3. 安装与设置Android Studio 4. 安装Visual Studio Code与Flutter开发插件 5. IDE的使用和配置 6. 安装Xcode 7. 检查Flutter开发环境 好书推荐 内容简介 作者简介 搭建开发环境 Flutter可以跨平…

selenium完结篇,补充知识点

1、前两期没看的建议先去看前两期博客 2、选择框的勾选 getAttribute("type")是获取属性的意思 List<WebElement> webElementswebDriver.findElements(By.cssSelector("input"));for(int i0;i<webElements.size();i){if(webElements.get(i).getA…

使用npm i进行admin依赖安装的时候出现问题

提示&#xff1a; npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/string-width failed, reason: certificate has expired 切换淘宝源到http或者更换其他国内镜像 npm config set registry http:/…

Salesforce宣布将停用Workflow Rules和Process Builder!

在近期的公告中&#xff0c;Salesforce透露在2025年12月31日之后将不再支持Workflow Rules和Process Builder。 Salesforce敦促用户在截止日期前将其自动化流程迁移到Flow Builder&#xff0c;以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代…

rust中常用cfg属性和cfg!宏的使用说明,实现不同系统的条件编译

cfg有两种使用方式&#xff0c;一种是属性&#xff1a; #[cfg()]&#xff0c;一种是宏&#xff1a;cfg! &#xff0c;这两个都是非常常用的功能。 #[cfg()]是 Rust 中的一个属性 用于根据配置条件来选择性地包含或排除代码。cfg 是 "configuration" 的缩写&#xf…

Web举例:防火墙二层,上下行连接交换机的主备备份组网

Web举例&#xff1a;防火墙二层&#xff0c;上下行连接交换机的主备备份组网 介绍了业务接口工作在二层&#xff0c;上下行连接交换机的主备备份组网的Web举例。 组网需求 如图1所示&#xff0c;两台FW的业务接口都工作在二层&#xff0c;上下行分别连接交换机。FW的上下行业…

中小型集群部署,Docker Swarm(集群)使用及部署应用介绍

1、Docker Swarm简介 说到集群&#xff0c;第一个想到的就是k8s&#xff0c;但docker官方也提供了集群和编排解决方案&#xff0c;它允许你将多个 Docker 主机连接在一起&#xff0c;形成一个“群集”&#xff08;Swarm&#xff09;&#xff0c;并可以在这个 Swarm 上运行和管…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

【零基础C语言】文件操作

目录 理解文件操作 什么是文件 程序文件 数据文件 文件名字 二进制文件和文本文件 文件的打开和关闭 文件的打开和关闭操作 实验1&#xff0c;打开一个文件并且输入26个字母 打开读取文件text.txt ,并且将它拷贝进text_cpy.txt 使用 fputs 和 fgets 函数 使用 fprintf函…

【计算机网络】IP 协议

网络层IP协议 一、认识 IP 地址二、IP 协议报头格式三、网段划分1. 初识子网划分2. 理解子网划分3. 子网掩码4. 特殊的 IP 地址5. IP 地址的数量限制6. 私有 IP 地址和公网 IP 地址7. 理解全球网络&#xff08;1&#xff09;理解公网&#xff08;2&#xff09;理解私网&#xf…

华为汽车图谱

极狐 极狐&#xff08;ARCFOX&#xff09;是由北汽、华为、戴姆勒、麦格纳等联合打造。总部位于北京蓝谷。 问界 华为与赛力斯&#xff08;东风小康&#xff09;合作的成果。 阿维塔 阿维塔&#xff08;AVATR&#xff09;是由长安汽车、华为、宁德时代三方联合打造。公司总部位…

canal: 连接kafka (docker)

一、确保mysql binlog开启并使用ROW作为日志格式 docker 启动mysql 5.7配置文件 my.cnf [mysqld] log-binmysql-bin # 开启 binlog binlog-formatROW # 选择 ROW 模式 server-id1一定要确保上述两个值一个为ROW&#xff0c;一个为ON 二、下载canal的run.sh https://github.c…