diff --git a/README.en.md b/README.en.md deleted file mode 100644 index 882a252a796a4d43c15965249183c7125a23bc97..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# 21级软件1班数据库高级学习笔记 - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md index 8c7e236a9534aa79ac843bb71bcdc45ebf2842d8..06c1799d886f3362b8be2fc4ab4a3a5feda5952b 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,4 @@ -# 21级软件1班数据库高级学习笔记 +# 年年学习笔记 -#### 介绍 -{**以下是 Gitee 平台说明,您可以替换此简介** -Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) +![网络不稳定](https://niann-24.github.io/img/img.png) +[年年的个人博客](niann-24.github.io) \ No newline at end of file diff --git "a/\351\276\232\344\270\234\350\276\21112/\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" "b/\351\276\232\344\270\234\350\276\21112/2022-8-30_\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" similarity index 92% rename from "\351\276\232\344\270\234\350\276\21112/\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" rename to "\351\276\232\344\270\234\350\276\21112/2022-8-30_\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" index d711d73a518d05e88c97bb034e36cb1077867a65..e4c1d65728bc7b3f7b5c41cf8f1b276dc29ccd49 100644 --- "a/\351\276\232\344\270\234\350\276\21112/\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" +++ "b/\351\276\232\344\270\234\350\276\21112/2022-8-30_\344\270\203\347\211\233\344\272\221\345\233\276\345\272\212vsco.md" @@ -2,7 +2,7 @@ ## 对象存储可以不占用我们的内存空间 1. 注册七牛云并实名认证 - ![](http://rhgxvcu9q.hn-bkt.clouddn.com/20220831192824.png) + ![](rhgxvcu9q.hn-bkt.clouddn.com/20220831192824.png) 2. 对象存储>空间管理>新建空间 ![](http://rhgxvcu9q.hn-bkt.clouddn.com/20220831192930.png) 3. 打开新建的空间的概览 diff --git "a/\351\276\232\344\270\234\350\276\21112/\346\225\260\346\215\256\345\272\223\345\237\272\347\241\200\345\244\215\344\271\24001.md" "b/\351\276\232\344\270\234\350\276\21112/2022-8-30_\346\225\260\346\215\256\345\272\223\345\237\272\347\241\200\345\244\215\344\271\240.md" similarity index 100% rename from "\351\276\232\344\270\234\350\276\21112/\346\225\260\346\215\256\345\272\223\345\237\272\347\241\200\345\244\215\344\271\24001.md" rename to "\351\276\232\344\270\234\350\276\21112/2022-8-30_\346\225\260\346\215\256\345\272\223\345\237\272\347\241\200\345\244\215\344\271\240.md" diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-2_ER\345\233\276.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_ER\345\233\276.md" new file mode 100644 index 0000000000000000000000000000000000000000..0a0453d50f6671cec089373b8637b868c740b26f --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_ER\345\233\276.md" @@ -0,0 +1,12 @@ +# ERͼ +`Eʵ壬ʵһ` +`Rǹϵ` + +ͼ,εʵ壬Բԣʵʵ֮ĹϵΣϵҲС +![](https://img-blog.csdnimg.cn/img_convert/ffe08991141daa6706b8c2da11eb251d.png) + +## ϵ +- һһ +- һԶ +- Զ + diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-2_Git\347\211\210\346\234\254\346\216\247\345\210\266.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_Git\347\211\210\346\234\254\346\216\247\345\210\266.md" new file mode 100644 index 0000000000000000000000000000000000000000..e85e2e53b964fcc47117fdd36b32bfdb2206c56a --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_Git\347\211\210\346\234\254\346\216\247\345\210\266.md" @@ -0,0 +1,400 @@ +# Git版本控制 + +**注意:**开始学习之前,确保自己的网络可以畅通的连接Github:https://github.com,这个是一个国外网站,连起来特别卡,至于用什么方式实现流畅访问,懂的都懂。 + +其实版本控制在我们的生活中无处不在,比如你的期末或是毕业答辩论文,由于你写得不规范或是老师不满意,你的老师可能会让你改了又改,于是就会出现下面这种情况: + +![点击查看源网页](https://gimg2.baidu.com/image_search/src=http%3A%2F%2F5b0988e595225.cdn.sohucs.com%2Fimages%2F20200417%2F1e63ac0f4d8442cb8c9ab1cb73f510c4.jpeg&refer=http%3A%2F%2F5b0988e595225.cdn.sohucs.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1644370473&t=fa8742db0b4f8db635ec003e37bca76c) + +我们手里的论文可能会经过多次版本迭代,最终我们会选取一个最好的版本作为最终提交的论文。使用版本控制不仅仅是为了去记录版本迭代历史,更是为了能够随时回退到之前的版本,实现时间回溯。同时,可能我们的论文是多个人一同完成,那么多个人如何去实现同步,如何保证每个人提交的更改都能够正常汇总,如何解决冲突,这些问题都需要一个优秀的版本控制系统来解决。 + +## 走进Git + +我们开发的项目,也需要一个合适的版本控制系统来协助我们更好地管理版本迭代,而Git正是因此而诞生的(有关Git的历史,这里就不多做阐述了,感兴趣的小伙伴可以自行了解,是一位顶级大佬在一怒之下只花了2周时间用C语言开发的,之后的章节还会遇到他) + +首先我们来了解一下Git是如何工作的: + +![点击查看源网页](https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2020.cnblogs.com%2Fblog%2F932856%2F202004%2F932856-20200423143251346-796113044.jpg&refer=http%3A%2F%2Fimg2020.cnblogs.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1644374894&t=7c2044128f7851ecd92de3c01f0187ca) + +可以看到,它大致分为4个板块: + +* 工作目录:存放我们正在写的代码(当我们新版本开发完成之后,就可以进行新版本的提交) +* 暂存区:暂时保存待提交的内容(新版本提交后会存放到本地仓库) +* 本地仓库:位于我们电脑上的一个版本控制仓库(存放的就是当前项目各个版本代码的增删信息) +* 远程仓库:位于服务器上的版本控制仓库(服务器上的版本信息可以由本地仓库推送上去,也可以从服务器抓取到本地仓库) + +它是一个分布式的控制系统,因此一般情况下我们每个人的电脑上都有一个本地仓库,由大家共同向远程仓库去推送版本迭代信息。 + +通过这一系列操作,我们就可以实现每开发完一个版本或是一个功能,就提交一次新版本,这样,我们就可以很好地控制项目的版本迭代,想回退到之前的版本随时都可以回退,想查看新版本添加或是删除了什么代码,随时都可以查看。 + +## 安装Git + +首先请前往Git官网去下载最新的安装包:https://git-scm.com/download/win + +这手把手演示一下如何安装Git环境。 + +安装完成后,需要设定用户名和邮箱来区分不同的用户: + +```shell +git config --global user.name "Your Name" +git config --global user.email "email@example.com" +``` + +## 基本命令介绍 + +### 创建本地仓库 + +我们可以将任意一个文件夹作为一个本地仓库,输入: + +```shell +git init +``` + +输入后,会自动生成一个`.git`目录,注意这个目录是一个隐藏目录,而当前目录就是我们的工作目录。 + +创建成功后,我们可以查看一下当前的一个状态,输入: + +```shell +git status +``` + +如果已经成功配置为Git本地仓库,那么输入后可以看到: + +```shell +On branch master + +No commits yet +``` + +这表示我们还没有向仓库中提交任何内容,也就是一个空的状态。 + +### 添加和提交 + +接着我们来看看,如何使用git来管理我们文档的版本,我们创建一个文本文档,随便写入一点内容,接着输入: + +```shell +git status +``` + +我们会得到如下提示: + +```shell +Untracked files: + (use "git add ..." to include in what will be committed) + hello.txt + +nothing added to commit but untracked files present (use "git add" to track) +``` + +其中Untracked files是未追踪文件的意思,也就是说,如果一个文件处于未追踪状态,那么git不会记录它的变化,始终将其当做一个新创建的文件,这里我们将其添加到暂存区,那么它会自动变为被追踪状态: + +```shell +git add hello.txt #也可以 add . 一次性添加目录下所有的 +``` + +再次查看当前状态: + +```sh +Changes to be committed: + (use "git rm --cached ..." to unstage) + new file: hello.txt +``` + +现在文件名称的颜色变成了绿色,并且是处于Changes to be committed下面,因此,我们的hello.txt现在已经被添加到暂存区了。 + +接着我们来尝试将其提交到Git本地仓库中,注意需要输入提交的描述以便后续查看,比如你这次提交修改了或是新增了哪些内容: + +```sh +git commit -m 'Hello World' +``` + +接着我们可以查看我们的提交记录: + +```sh +git log +git log --graph +``` + +我们还可以查看最近一次变更的详细内容: + +```sh +git show [也可以加上commit ID查看指定的提交记录] +``` + +再次查看当前状态,已经是清空状态了: + +```sh +On branch master +nothing to commit, working tree clean +``` + +接着我们可以尝试修改一下我们的文本文档,由于当前文件已经是被追踪状态,那么git会去跟踪它的变化,如果说文件发生了修改,那么我们再次查看状态会得到下面的结果: + +```sh +Changes not staged for commit: + (use "git add ..." to update what will be committed) + (use "git restore ..." to discard changes in working directory) + modified: hello.txt +``` + +也就是说现在此文件是处于已修改状态,我们如果修改好了,就可以提交我们的新版本到本地仓库中: + +```sh +git add . +git commit -m 'Modify Text' +``` + +接着我们来查询一下提交记录,可以看到一共有两次提交记录。 + +我们可以创建一个`.gitignore`文件来确定一个文件忽略列表,如果忽略列表中的文件存在且不是被追踪状态,那么git不会对其进行任何检查: + +```yaml +# 这样就会匹配所有以txt结尾的文件 +*.txt +# 虽然上面排除了所有txt结尾的文件,但是这个不排除 +!666.txt +# 也可以直接指定一个文件夹,文件夹下的所有文件将全部忽略 +test/ +# 目录中所有以txt结尾的文件,但不包括子目录 +xxx/*.txt +# 目录中所有以txt结尾的文件,包括子目录 +xxx/**/*.txt +``` + +创建后,我们来看看是否还会检测到我们忽略的文件。 + +### 回滚 + +当我们想要回退到过去的版本时,就可以执行回滚操作,执行后,可以将工作空间的内容恢复到指定提交的状态: + +```sh +git reset --hard commitID +``` + +执行后,会直接重置为那个时候的状态。再次查看提交日志,我们发现之后的日志全部消失了。 + +那么要是现在我又想回去呢?我们可以通过查看所有分支的所有操作记录: + +```sh +git reflog +``` + +这样就能找到之前的commitID,再次重置即可。 + +## 分支 + +分支就像我们树上的一个树枝一样,它们可能一开始的时候是同一根树枝,但是长着长着就开始分道扬镳了,这就是分支。我们的代码也是这样,可能一开始写基础功能的时候使用的是单个分支,但是某一天我们希望基于这些基础的功能,把我们的项目做成两个不同方向的项目,比如一个方向做Web网站,另一个方向做游戏服务端。 + +因此,我们可以在一个主干上分出N个分支,分别对多个分支的代码进行维护。 + +### 创建分支 + +我们可以通过以下命令来查看当前仓库中存在的分支: + +```sh +git branch +``` + +我们发现,默认情况下是有一个master分支的,并且我们使用的也是master分支,一般情况下master分支都是正式版本的更新,而其他分支一般是开发中才频繁更新的。我们接着来基于当前分支创建一个新的分支: + +```sh +git branch test +# 对应的删除分支是 +git branch -d yyds +``` + +现在我们修改一下文件,提交,再查看一下提交日志: + +```sh +git commit -a -m 'branch master commit' +``` + +通过添加-a来自动将未放入暂存区的已修改文件放入暂存区并执行提交操作。查看日志,我们发现现在我们的提交只生效于master分支,而新创建的分支并没有发生修改。 + +我们将分支切换到另一个分支: + +```sh +git checkout test +``` + +我们会发现,文件变成了此分支创建的时的状态,也就是说,在不同分支下我们的文件内容是相互隔离的。 + +我们现在再来提交一次变更,会发现它只生效在yyds分支上。我们可以看看当前的分支状态: + +```sh +git log --all --graph +``` + +### 合并分支 + +我们也可以将两个分支更新的内容最终合并到同一个分支上,我们先切换回主分支: + +```sh +git checkout master +``` + +接着使用分支合并命令: + +```sh +git merge test +``` + +会得到如下提示: + +``` +Auto-merging hello.txt +CONFLICT (content): Merge conflict in hello.txt +Automatic merge failed; fix conflicts and then commit the result. +``` + +在合并过程中产生了冲突,因为两个分支都对hello.txt文件进行了修改,那么现在要合并在一起,到底保留谁的hello文件呢? + +我们可以查看一下是哪里发生了冲突: + +```sh +git diff +``` + +因此,现在我们将master分支的版本回退到修改hello.txt之前或是直接修改为最新版本的内容,这样就不会有冲突了,接着再执行一次合并操作,现在两个分支成功合并为同一个分支。 + +### 变基分支 + +除了直接合并分支以外,我们还可以进行变基操作,它跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置,比如我们希望将yyds变基到master上,那么yyds会将分支起点移动到master最后一次提交位置: + +```sh +git rebase master +``` + +变基后,yyds分支相当于同步了此前master分支的全部提交。 + +### 优选 + +我们还可以选择其将他分支上的提交作用于当前分支上,这种操作称为cherrypick: + +```sh +git cherry-pick :单独合并一个提交 +``` + +这里我们在master分支上创建一个新的文件,提交此次更新,接着通过cherry-pick的方式将此次更新作用于test分支上。 + +*** + +## 使用IDEA版本控制 + +虽然前面我们基本讲解了git的命令行使用方法,但是没有一个图形化界面,始终会感觉到很抽象,所以这里我们使用IDEA来演示,IDEA内部集成了git模块,它可以让我们的git版本管理图形化显示,当然除了IDEA也有一些独立的软件比如:SourceTree(挺好用) + +打开IDEA后,找到版本控模块,我们直接点击创建本地仓库,它会自动将当前项目的根目录作为我们的本地仓库,而我们编写的所有代码和项目目录下其他的文件都可以进行版本控制。 + +我们发现所有项目中正在编写的类文件全部变红了,也就是处于未追踪状态,接着我们进行第一次初始化提交,提交之后我们可以在下方看到所有的本地仓库提交记录。 + +接着我们来整合一下Web环境,创建新的类之后,IDEA会提示我们是否将文件添加到Git,也就是是否放入暂存区并开启追踪,我们可以直接对比两次代码的相同和不同之处。 + +接着我们来演示一下分支创建和分支管理。 + +*** + +## 远程仓库 + +远程仓库实际上就是位于服务器上的仓库,它能在远端保存我们的版本历史,并且可以实现多人同时合作编写项目,每个人都能够同步他人的版本,能够看到他人的版本提交,相当于将我们的代码放在服务器上进行托管。 + +远程仓库有公有和私有的,公有的远程仓库有GitHub、码云、Coding等,他们都是对外开放的,我们注册账号之后就可以使用远程仓库进行版本控制,其中最大的就是GitHub,但是它服务器在国外,我们国内连接可能会有一点卡。私有的一般是GitLab这种自主搭建的远程仓库私服,在公司中比较常用,它只对公司内部开放,不对外开放。 + +这里我们以GitHub做讲解,官网:https://github.com,首先完成用户注册。 + +### 远程账户认证和推送 + +接着我们就可以创建一个自定义的远程仓库了。 + +创建仓库后,我们可以通过推送来将本地仓库中的内容推送到远程仓库。 + +```sh +git remote add 名称 远程仓库地址 +git push 远程仓库名称 本地分支名称[:远端分支名称] +``` + +注意`push`后面两个参数,一个是远端名称,还有一个就是本地分支名称,但是如果本地分支名称和远端分支名称一致,那么不用指定远端分支名称,但是如果我们希望推送的分支在远端没有同名的,那么需要额外指定。推送前需要登陆账户,GitHub现在不允许使用用户名密码验证,只允许使用个人AccessToken来验证身份,所以我们需要先去生成一个Token才可以。 + +推送后,我们发现远程仓库中的内容已经与我们本地仓库中的内容保持一致了,注意,远程仓库也可以有很多个分支。 + +但是这样比较麻烦,我们每次都需要去输入用户名和密码,有没有一劳永逸的方法呢?当然,我们也可以使用SSH来实现一次性校验,我们可以在本地生成一个rsa公钥: + +```sh +ssh-keygen -t rsa +cat ~/.ssh/github.pub +``` + +接着我们需要在GitHub上上传我们的公钥,当我们再次去访问GitHub时,会自动验证,就无需进行登录了,之后在Linux部分我们会详细讲解SSH的原理。 + +接着我们修改一下工作区的内容,提交到本地仓库后,再推送到远程仓库,提交的过程中我们注意观察提交记录: + +```sh +git commit -a -m 'Modify files' +git log --all --oneline --graph +git push origin master +git log --all --oneline --graph +``` + +我们可以将远端和本地的分支进行绑定,绑定后就不需要指定分支名称了: + +```sh +git push --set-upstream origin master:master +git push origin +``` + +在一个本地仓库对应一个远程仓库的情况下,远程仓库基本上就是纯粹的代码托管了(云盘那种感觉,就纯粹是存你代码的) + +### 克隆项目 + +如果我们已经存在一个远程仓库的情况下,我们需要在远程仓库的代码上继续编写代码,这个时候怎么办呢? + +我们可以使用克隆操作来将远端仓库的内容全部复制到本地: + +```sh +git clone 远程仓库地址 +``` + +这样本地就能够直接与远程保持同步。 + +### 抓取、拉取和冲突解决 + +我们接着来看,如果这个时候,出现多个本地仓库对应一个远程仓库的情况下,比如一个团队里面,N个人都在使用同一个远程仓库,但是他们各自只负责编写和推送自己业务部分的代码,也就是我们常说的协同工作,那么这个时候,我们就需要协调。 + +比如程序员A完成了他的模块,那么他就可以提交代码并推送到远程仓库,这时程序员B也要开始写代码了,由于远程仓库有其他程序员的提交记录,因此程序员B的本地仓库和远程仓库不一致,这时就需要有先进行pull操作,获取远程仓库中最新的提交: + +```sh +git fetch 远程仓库 #抓取:只获取但不合并远端分支,后面需要我们手动合并才能提交 +git pull 远程仓库 #拉取:获取+合并 +``` + +在程序员B拉取了最新的版本后,再编写自己的代码然后提交就可以实现多人合作编写项目了,并且在拉取过程中就能将别人提交的内容同步到本地,开发效率大大提升。 + +如果工作中存在不协调的地方,比如现在我们本地有两个仓库,一个仓库去修改hello.txt并直接提交,另一个仓库也修改hello.txt并直接提交,会得到如下错误: + +``` +To https://github.com/xx/xxx.git + ! [rejected] master -> master (fetch first) +error: failed to push some refs to 'https://github.com/xx/xxx.git' +hint: Updates were rejected because the remote contains work that you do +hint: not have locally. This is usually caused by another repository pushing +hint: to the same ref. You may want to first integrate the remote changes +hint: (e.g., 'git pull ...') before pushing again. +hint: See the 'Note about fast-forwards' in 'git push --help' for details. +``` + +一旦一个本地仓库推送了代码,那么另一个本地仓库的推送会被拒绝,原因是当前文件已经被其他的推送给修改了,我们这边相当于是另一个版本,和之前两个分支合并一样,产生了冲突,因此我们只能去解决冲突问题。 + +如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件,那么就可以直接拉取: + +```sh +git pull 远程仓库 +``` + +拉取后会自动进行合并,合并完成之后我们再提交即可。 + +但是如果两次提交都修改了同一个文件,那么就会遇到和多分支合并一样的情况,在合并时会产生冲突,这时就需要我们自己去解决冲突了。 + +我们可以在IDEA中演示一下,实际开发场景下可能会遇到的问题。 + +*** + + diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-2_makedown\345\237\272\346\234\254\350\257\255\346\263\225.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_makedown\345\237\272\346\234\254\350\257\255\346\263\225.md" new file mode 100644 index 0000000000000000000000000000000000000000..e41eecd103e9e10847aefac616546cf07aa19d84 --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_makedown\345\237\272\346\234\254\350\257\255\346\263\225.md" @@ -0,0 +1,135 @@ +# makedown语法介绍 +**Markdown是一种纯文本格式的标记语言。通过简单的标记语法,它可以使普通文本内容具有一定的格式。 +建议使用typory软件进行编辑,typory是地表最强makedown编译器,没有之一,全体起立** + +网页版markdown编译器:[语雀](https://www.yuque.com) + +使用vscode建议下载markdown插件 + + + + + + +--- +阿里云不限速:「typora免费版」https://www.aliyundrive.com/s/xdBVkuTpifb 提取码: o34w + + + +## 优点 +1. 因为纯文本,所以不管在哪都可以使用makedown语法 +2. 操作简单 + +## 缺点 +1. **没有缺点** + +## 基本格式 + +### 标题 +一级标题 # +二级标题 ## +三级标题 ### +.... + +```makedown +# 一级标题 +## 二级标题 +### 三级标题 +``` + +### 字体 + +- 加粗 + +用两个*将要加粗的文字包裹起来 + +- 斜体 + +用一个*将要加粗的文字包裹起来 + +- 斜体加粗 + + +用三个*将要加粗的文字包裹起来 + +- 删除线 + +要加删除线的文字左右分别用两个~~号包起来 + +实例: + +```makedown +**这是加粗的文字** +*这是倾斜的文字* +***这是加粗倾斜的文字*** +~~这是加删除线的文字~~ +``` + +### 分割线 + +使用 --- 或 *** 都可以当做分割线 + +``` +--- + +*** + +``` + +### 图片 + +语法: + +``` +![图片alt](图片地址) + +``` +示例: + +``` +![网络异常](https://niannyyu/test.png) +``` +### 超链接 + +``` + +[超链接名](超链接地址) + +``` + +``` +[简书](http://jianshu.com) +``` + +### 列表 +#### 无序列表 +可以用 - + * 任何一种都可以 + +``` +- 列表1 +- 列表2 +- 列表3 +``` +#### 有序列表 +数字加点 + +``` +1. 列表 +2. 列表 +3. 列表 + +``` +### 代码块 +``` +语法: +用 ```将代码块包裹 +实例: + +```javascript + +function fun(){ + echo"这是一句非常牛逼的代码"; +} +fun(); + +``` diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-2_\346\226\207\347\253\240\347\256\241\347\220\206\347\263\273\347\273\237.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_\346\226\207\347\253\240\347\256\241\347\220\206\347\263\273\347\273\237.md" new file mode 100644 index 0000000000000000000000000000000000000000..9aa7dfb02d0db5e53bba9ea87c5f1c76bc125d64 --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_\346\226\207\347\253\240\347\256\241\347\220\206\347\263\273\347\273\237.md" @@ -0,0 +1,332 @@ +##
目录
+ - ### 1. 模块清单 +- [

1.1. 文章管理系统

](#module-文章CMS "文章CMS") + + - [
1.1.1. 关联关系
](#module-文章CMS-relation "关联关系") + - [
1.1.2. 表清单
](#module-文章CMS-tableList "表清单") + - [
1.1.3. 表列清单
](#module-文章CMS-tableColumnList "表列清单") + - [
1.1.3.1 Users【用户管理】
](#module-文章CMS-tableColumnList-Users "Users") + - [
1.1.3.2 Info【文章信息】
](#module-文章CMS-tableColumnList-Info "Info") + - [
1.1.3.3 authorInfo【作者信息】
](#module-文章CMS-tableColumnList-authorInfo "authorInfo") + - [
1.1.3.4 sort【分类信息】
](#module-文章CMS-tableColumnList-sort "sort") + - [
1.1.3.5 TextTypeInfo【文章类型表】
](#module-文章CMS-tableColumnList-TextTypeInfo "TextTypeInfo") + - [
1.1.3.6 store【收藏信息】
](#module-文章CMS-tableColumnList-store "store") + - [
1.1.3.7 comment\_likeInfo【评论点赞信息表】
](#module-文章CMS-tableColumnList-comment_likeInfo "comment_likeInfo") + --- + +### 1. 模块清单 + - [

1.1. 文章管理系统

](#module-文章CMS-from) + - [
1.1.1 关联关系
](#module-文章CMS-relation-from) +--- + + - [![vIqa2q.png](https://s1.ax1x.com/2022/09/02/vIqa2q.png) + +--- + +| 名称 | 代码 | 备注 | +| ------------ | ------------ | ------------ | +| 用户管理 | Users | | +| 文章信息 | Info | | +| 作者信息 | authorInfo | | +| 分类信息 | sort | | +| 文章类型表 | TextTypeInfo | | +| 收藏信息 | store | | +| 评论点赞信息表 | comment\_likeInfo | | + +--- + + - [
1.1.3 表列清单
](#module-文章CMS-tableColumnList-from) + +--- + + - [
Users【用户管理】
](#module-文章CMS-tableColumnList-Users-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| id | 字段id | INT | √ | | +| username | 用户名 | VARCHAR(32) | | | +| password | 密码 | VARCHAR(32) | | | +| salt | 盐值 | VARCHAR(32) | | | +| is\_delete | is_delete | CHAR(1) | | | +| power | 权限 | VARCHAR(32) | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
Info【文章信息】
](#module-文章CMS-tableColumnList-Info-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| id | ID | INT | √ | | +| title | 标题 | VARCHAR(32) | | | +| dataTime | 发布时间 | DATETIME | | | +| TextInfo | 文本信息 | TEXT | | | +| TextType | 文章类型 | INT | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
authorInfo【作者信息】
](#module-文章CMS-tableColumnList-authorInfo-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| author\_id | id | INT | √ | | +| text\_id | text_id | INT | | | +| u\_id | u_id | INT | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
sort【分类信息】
](#module-文章CMS-tableColumnList-sort-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| sort\_id | 分类id | INT | √ | | +| grade\_id | 文章类型Id | INT | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
TextTypeInfo【文章类型表】
](#module-文章CMS-tableColumnList-TextTypeInfo-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| type\_id | 文章类型id | INT | √ | | +| type\_Info | 文章类别信息 | VARCHAR(32) | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
store【收藏信息】
](#module-文章CMS-tableColumnList-store-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| store\_id | store_id | INT | √ | | +| u\_id | u_id | INT | | | +| Text\_id | 文章id | INT | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + + - [
comment_likeInfo【评论点赞信息表】
](#module-文章CMS-tableColumnList-comment_likeInfo-from) + +| 代码 | 名称 | 数据类型(MYSQL) | 主键 | 备注 | +| ------------ | ------------ | ------------ | ------------ | ------------ | +| id | 评论id | INT | √ | | +| text\_id | 文章id | INT | | | +| u\_id | 用户id | INT | | | +| info | 评论信息 | VARCHAR(1024) | | | +| datatime | 评论时间 | DATETIME | | | +| id\_like | 是否点赞 | CHAR(1) | | | +| datatime | 点赞时间 | DATETIME | | | +| REVISION | 乐观锁 | INT | | | +| CREATED\_BY | 创建人 | VARCHAR(32) | | | +| CREATED\_TIME | 创建时间 | DATETIME | | | +| UPDATED\_BY | 更新人 | VARCHAR(32) | | | +| UPDATED\_TIME | 更新时间 | DATETIME | | | + +--- + +## sql代码 + +```sql +CREATE database article_DB; +go; +CREATE TABLE Users( + id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + username NVARCHAR(32) NOT NULL , + password NVARCHAR(32) NOT NULL , + salt NVARCHAR(32) , + is_delete CHAR(1) DEFAULT 0 , + power NVARCHAR(32) NOT NULL , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_Users PRIMARY KEY CLUSTERED (id ASC ) ON [PRIMARY] +); +go; +EXECUTE sp_addextendedproperty N'MS_Description', '用户管理', N'user', N'dbo', N'table', N'Users', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', '字段id', N'user', N'dbo', N'table', N'Users', N'column', N'id'; +EXECUTE sp_addextendedproperty N'MS_Description', '用户名', N'user', N'dbo', N'table', N'Users', N'column', N'username'; +EXECUTE sp_addextendedproperty N'MS_Description', '密码', N'user', N'dbo', N'table', N'Users', N'column', N'password'; +EXECUTE sp_addextendedproperty N'MS_Description', '盐值', N'user', N'dbo', N'table', N'Users', N'column', N'salt'; +EXECUTE sp_addextendedproperty N'MS_Description', 'is_delete', N'user', N'dbo', N'table', N'Users', N'column', N'is_delete'; +EXECUTE sp_addextendedproperty N'MS_Description', '权限', N'user', N'dbo', N'table', N'Users', N'column', N'power'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'Users', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'Users', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'Users', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'Users', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'Users', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE Info( + id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + title NVARCHAR(32) NOT NULL , + dataTime DATE NOT NULL , + TextInfo NTEXT , + TextType INT NOT NULL , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_Info PRIMARY KEY CLUSTERED (id ASC ) ON [PRIMARY] +); +go; +EXECUTE sp_addextendedproperty N'MS_Description', '文章信息', N'user', N'dbo', N'table', N'Info', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', 'ID', N'user', N'dbo', N'table', N'Info', N'column', N'id'; +EXECUTE sp_addextendedproperty N'MS_Description', '标题', N'user', N'dbo', N'table', N'Info', N'column', N'title'; +EXECUTE sp_addextendedproperty N'MS_Description', '发布时间', N'user', N'dbo', N'table', N'Info', N'column', N'dataTime'; +EXECUTE sp_addextendedproperty N'MS_Description', '文本信息', N'user', N'dbo', N'table', N'Info', N'column', N'TextInfo'; +EXECUTE sp_addextendedproperty N'MS_Description', '文章类型', N'user', N'dbo', N'table', N'Info', N'column', N'TextType'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'Info', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'Info', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'Info', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'Info', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'Info', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE authorInfo( + author_id INT NOT NULL IDENTITY(1,1) , + text_id INT NOT NULL , + u_id INT , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_authorInfo PRIMARY KEY CLUSTERED (author_id ASC ) ON [PRIMARY] +); +go; + +EXECUTE sp_addextendedproperty N'MS_Description', '作者信息', N'user', N'dbo', N'table', N'authorInfo', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', 'id', N'user', N'dbo', N'table', N'authorInfo', N'column', N'author_id'; +EXECUTE sp_addextendedproperty N'MS_Description', 'text_id', N'user', N'dbo', N'table', N'authorInfo', N'column', N'text_id'; +EXECUTE sp_addextendedproperty N'MS_Description', 'u_id', N'user', N'dbo', N'table', N'authorInfo', N'column', N'u_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'authorInfo', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'authorInfo', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'authorInfo', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'authorInfo', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'authorInfo', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE sort( + sort_id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + grade_id INT NOT NULL , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_sort PRIMARY KEY CLUSTERED (sort_id ASC ) ON [PRIMARY] +); +go; + +EXECUTE sp_addextendedproperty N'MS_Description', '分类信息', N'user', N'dbo', N'table', N'sort', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', '分类id', N'user', N'dbo', N'table', N'sort', N'column', N'sort_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '文章类型Id', N'user', N'dbo', N'table', N'sort', N'column', N'grade_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'sort', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'sort', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'sort', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'sort', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'sort', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE TextTypeInfo( + type_id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + type_Info NVARCHAR(32) , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_TextTypeInfo PRIMARY KEY CLUSTERED (type_id ASC ) ON [PRIMARY] +); +go; +EXECUTE sp_addextendedproperty N'MS_Description', '文章类型表', N'user', N'dbo', N'table', N'TextTypeInfo', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', '文章类型id', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'type_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '文章类别信息', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'type_Info'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'TextTypeInfo', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE store( + store_id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + u_id INT NOT NULL , + Text_id INT NOT NULL , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_store PRIMARY KEY CLUSTERED (store_id ASC ) ON [PRIMARY] +); +go; +EXECUTE sp_addextendedproperty N'MS_Description', '收藏信息', N'user', N'dbo', N'table', N'store', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', 'store_id', N'user', N'dbo', N'table', N'store', N'column', N'store_id'; +EXECUTE sp_addextendedproperty N'MS_Description', 'u_id', N'user', N'dbo', N'table', N'store', N'column', N'u_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '文章id', N'user', N'dbo', N'table', N'store', N'column', N'Text_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'store', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'store', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'store', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'store', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'store', N'column', N'UPDATED_TIME'; +go; +CREATE TABLE comment_likeInfo( + id INT NOT NULL IDENTITY(1,1) DEFAULT 1 , + text_id INT , + u_id INT NOT NULL , + info NVARCHAR(1024) , + datatime DATE NOT NULL , + id_like CHAR(1) , + datatime DATE , + REVISION INT , + CREATED_BY VARCHAR(32) , + CREATED_TIME DATE , + UPDATED_BY VARCHAR(32) , + UPDATED_TIME DATE , + CONSTRAINT PK_comment_likeInfo PRIMARY KEY CLUSTERED (id ASC ) ON [PRIMARY] +); +go; + +EXECUTE sp_addextendedproperty N'MS_Description', '评论点赞信息表', N'user', N'dbo', N'table', N'comment_likeInfo', NULL, NULL; +EXECUTE sp_addextendedproperty N'MS_Description', '评论id', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'id'; +EXECUTE sp_addextendedproperty N'MS_Description', '文章id', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'text_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '用户id', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'u_id'; +EXECUTE sp_addextendedproperty N'MS_Description', '评论信息', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'info'; +EXECUTE sp_addextendedproperty N'MS_Description', '评论时间', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'datatime'; +EXECUTE sp_addextendedproperty N'MS_Description', '是否点赞', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'id_like'; +EXECUTE sp_addextendedproperty N'MS_Description', '点赞时间', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'datatime'; +EXECUTE sp_addextendedproperty N'MS_Description', '乐观锁', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'REVISION'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建人', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'CREATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '创建时间', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'CREATED_TIME'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新人', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'UPDATED_BY'; +EXECUTE sp_addextendedproperty N'MS_Description', '更新时间', N'user', N'dbo', N'table', N'comment_likeInfo', N'column', N'UPDATED_TIME'; +go; + +``` + diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-2_\350\267\257\350\277\207\345\233\276\345\272\212\350\277\207\346\270\241.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_\350\267\257\350\277\207\345\233\276\345\272\212\350\277\207\346\270\241.md" new file mode 100644 index 0000000000000000000000000000000000000000..591a88900066eeabce31cadec2ae9e2b7c6ea418 --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-2_\350\267\257\350\277\207\345\233\276\345\272\212\350\277\207\346\270\241.md" @@ -0,0 +1,17 @@ +# 路过图床——创建自己的图片服务器 + + 由于七牛云提供的对象存储需要域名,域名没备案只能使用海外的节点,备案又需要服务器,免费的服务器又不能备案,所有我们可以使用**路过图床**过渡一下 +--- + +官网:[点击我](https://imgse.com) + +点击上传 + +[![vI1QIO.png](https://s1.ax1x.com/2022/09/02/vI1QIO.png)](https://imgse.com/i/vI1QIO) + +上传成功后直接调用markdown链接即可 + +[![vI1Gzd.png](https://s1.ax1x.com/2022/09/02/vI1Gzd.png)](https://imgse.com/i/vI1Gzd) + +喜欢的话给我GitHub一个start吧[笔芯] +[个人博客](https://niann-24.github.io/#/) \ No newline at end of file diff --git "a/\351\276\232\344\270\234\350\276\21112/2022-9-5_\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241\344\270\211\350\214\203\345\274\217\347\273\203\344\271\240.md" "b/\351\276\232\344\270\234\350\276\21112/2022-9-5_\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241\344\270\211\350\214\203\345\274\217\347\273\203\344\271\240.md" new file mode 100644 index 0000000000000000000000000000000000000000..858bfb36509e95b3c425fab6493689602b7bee08 --- /dev/null +++ "b/\351\276\232\344\270\234\350\276\21112/2022-9-5_\346\225\260\346\215\256\345\272\223\350\256\276\350\256\241\344\270\211\350\214\203\345\274\217\347\273\203\344\271\240.md" @@ -0,0 +1,14 @@ +# 数据库设计 +数据库设计至少需要满足三范式 + + --- +## 三范式复习 + - 1NF + 每个表都要有主键 + - 2NF + 每个列都需要直接或间接地跟主键有关系 + - 3NF + 每个列都需要直接跟主键有关系 +--- + +