前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。
本项目将基于谷粒商城项目,并且对谷粒商城项目进行二次重构,使其满足最新的主流技术栈要求。
上一篇文章我们对git进行了系统的介绍,这一篇文章,我们搭建项目,介绍数据库的设计工具powerdesigner,数据库的设计方法,进行数据库的设计实战。这一篇,补全了视频没有讲的内容,绝对超值。
上一篇文章我们已经完成远程仓库的密钥配置。先测试下github/gitee的远程代码库已经成功连接。输出命令,看到如下提示即可。
半旧@banjiu MINGW64 ~
$ ssh -T git@gitee.com
Hi banjiu(@banjiu518)! You've successfully authenticated, but GITEE.COM does not provide shell access.
如果你配置的是github的ssh密钥,命令为:$ ssh -T git@github.com。
在gitee上新建一个远程仓库。注意,图中gulimall我拼写错了,请你自行修改正确。
在IDEA中,从远端版本库新建项目
复制下远端仓库的url。
项目建好,创建微服务。
导入必要的依赖,这是web项目,导入spring web。另外微服务之间进行HTTP通信要用到OpenFeign。
如法炮制,创建其它微服务。
gulimall父项目下,新建pom文件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.banjiu</groupId>
<artifactId>gulimall</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>gulimail</name>
<description>gulimall聚合服务</description>
<packaging>pom</packaging>
<modules>
<module>gulimall-coupon</module>
<module>gulimall-product</module>
<module>gulimall-ware</module>
<module>gulimall-order</module>
<module>gulimall-member</module>
</modules>
</project>
reload maven project。
更新下.gitignore文件。
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
.idea
**/.gitignore
**/.gitattributes
确认下。
全部选择,右键将剩下的文件纳入版本控制。
装一个Gitee插件。
提交并push
在远程库里就可以看到我们提交的代码咯
你可以去官网下载。
https://www.powerdesigner.biz/EN/powerdesigner-resources/trial-download-167.html
这里还给你提供一个快速的免费PJ版链接:https://onlinedown.rbread04.cn/huajunsafe/powerdesigner1029.zip
解压后,一路傻瓜式安装。在这里全部勾选就ok。
为了方便学习,PJ下。将这个文件复制到PD的安装目录即可。
OK啦。
想象你要盖一栋房子,第一步不是直接施工,而是先画个草图。
总结:概念模型就是“想清楚要做什么,不关心怎么做”。
草图确定后,接下来要画详细的施工图纸,标出每个房间的尺寸、门窗位置、水电走线。
总结:逻辑模型是“明确细节,但还不关心用水泥还是砖头”。
施工图纸完成后,工人要根据图纸实际盖房子,选择材料(砖头还是木头)、确定水管粗细、地板用什么材质。
总结:物理模型是“具体怎么实现,落地到代码和硬件”。
总结成一句话
数据库设计模型就像盖房子:
上面已经介绍了数据库的模型设计的理论,是很规范的做法。下面主要为了介绍工具使用,对三层设计过程没有很严格的遵守,区分。请读者知悉。
新建模型。
选择概念模型。
将下图部分改下名,改为MySchool。
新建实体。
点小箭头,将实体微调拖动到好看的位置。
右击实体1,修改具体的信息。
最后三个实体设计完了。
接下来创建实体之间的关系。
学生和老师的关系是多对多。
学生和班级是多对一。
最后效果如图所示。
保存工作空间。
新建物理模型。
先绘制三个实体。
绘制关系。会自动生成外键,比如学生信息表,会多一个班级编号。由于学生和老师是多对多的关系,需要新增学生和老师的关系表。
上面绘制了概念模型,再单独绘制物理模型的方法,是不是很麻烦。这节我们介绍概念模型与物理模型的转换。
是不是很牛
同样的道理,有sql的脚本,也可以反向生成数据库的模型。这对你理解开源项目的源码,架构很有帮助。
这里先直接给你我们的sql文件。你就不用在画设计图了,我们直接用pd逆向,然后你理解下。
https://gitee.com/lemon_wan/gulimall/tree/dev/sql%E8%84%9A%E6%9C%AC
接下来,我们连接上我们的数据库,再执行下所有的sql脚本。
我这里使用的是navicat。
先新建连接。
新建数据库。
如法炮制。
挨个执行sql文件。
刷新
表就都建好了。
如法炮制。
好了,这届我们就介绍到这里
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。