00:00
前面呢,我们创建好了这么几个微服务,那接下来呢,我们就来看一下我们鼓励mail的整个数据库设计,那根据数据库设计呢,我们可以使用逆向工程快速的创建出我们这些基本的增产改查代码来简化开发。那好,我们这个数据库设计呢,就放在了这个基础篇文档里边,给大家放在了我们这个数据库设计这一块,当然这是一个power designer的这个文件,但需要呢,提前来安装我们软件里边给大家带的这个power.design那好,安装好以后呢,我们就直接打开我们的数据库设计。这个数据库设计呢,我们主要区分这么几处,好,这五个微服务呢,分别对应五个数据库,按照微服务,我们这个服务自制每个人操作自己的数据库,所以呢,跟优惠和营销相关的我们放在这个数据库,和商品相关的我们放在这个数据库,这个数据库呢,每一张表,每一个字段是什么意思,我们在这都有中文的注释,包括呢,我们这个库存信息的数据库我们放在这一块,然后呢,还有我们这个用户信息相关的数据库表设计我们放在这一块,包括呢,我们订单的一些数据库的表设计放在这里,那当然我们这些表呢,我们现在不先一一分析,等我们用到的时候,我们来分析数据库里边的设计,但是我们整个设计里边有一个最大的特点,就是所有的表之间关系再复杂,不建立外建,因为在我们电商系统里边数据量超大,做外建关联是一个非常耗费数据库性能的操作假设。
01:38
我们每张表都有几十万几百万的数据,那么每插入删除一条数据,数据库都要对外键进行检查,来保证我们数据的一致性和完整性。当然对于我们power designer软件的使用,如果大家自己想在里边建立一些表,我们鼠标可以放在右边,诶,这有一张表格table,我们点一下,那这就有一张表,那我如何给表里边添加每一列,只需要双击表,那么这一块所有的code都是我们真正的表名,比如我们叫t test,我们这个测试的表名,然后呢,Name那就是给我们看的,我们可以写中文,哎,测试表包括呢,如果大家想给表里边每一列定义什么信息,这个command的,当然这是整个表的备注信息,给每一列定义信息呢,可以在这写,所有的name都是给我们自己看的,比如我们可以写这是一个主键,诶,那么code的呢,那真正是数据库里边对应的列名,比如我们写ID,数据类型可以在这儿下拉选择,也可以在这小三点。
02:38
选择,比如数据类型呢,选择long integer,好,包括呢,我们这个是一个主键,那所以说呢,我们要勾中这个primary,诶那么这个主键想要自增,我们可以把这一列选中,如果对某一列的详细信息来做规定,可以来选择这个properties点一下好。我们进来以后呢,可以在列这里边选中a identity,那这就是一个自增主见,包括列的详细规则啊,以及一些呃约束检查等等等等,我们都可以在这儿来给它详细制定规则,而且当我们把这张表设计好了以后,我们还可以点preview,诶,我们可以看一下生成这张表的语句,而且呢,如果大家是32位系统,包括安装JAVA32位的虚拟机,它呢还可以自动的连上我们数据库,将这些表创建到数据库中去,那我们现在要把这些表创建到数据库,我们可以选中database,这有一个generate database,我们生成数据库,直接点preview,我们可以看到所有表信息的预览,哎,我们这o Ms代表order manage system订单管理系统,那么PMS就叫product manage system,我们叫商品管理系统等等,Cell呢,那就是营销管理系统,包括呢,我们的u Ms user等等等等,我们所有的这些表全部都在这有。大家可以把整。
03:56
整个表的语句,Ctrl a ctrl c来创建一个数据库来保存它,当然我们说了,现在依据我们微服务划分,每一个微服务只操作自己的数据库,所以呢,我们将整个的SQ语句,我给大家划分出了每一个微服务自己对应的我们这个OMS订单服务的PMS商品的等等。那我们接下来呢,就每一个微服务创建自己的数据库,并将它的搜Q语句进行执行,创建出各种表,好,我们可以来连接虚拟机,这个虚拟机呢,我们现在是已经关闭的状态,我们使用vagranrant命令可以快速的来启动虚拟机,Vagrant up,我们在这启动,或者呢,你在这右键启动,这都是一样的啊,那么在这呢进行启动。
04:43
那等我们这个启动完成以后,我们就可以使用我们的MYSQL客户端,哎,比如我使用SQ要。然后呢,连上我们的虚拟机,诶,比如我们的虚拟机地址是192.168,诶我们之前是56.10,好,我使用root。
05:03
Root好,我来测试连接,然我们发现这一块呢,连接不上,连接不上的原因我们来看虚拟机启动了没,虚拟机呢,这一块已经是启动了,接下来呢,我们使用vagrant命令连上我们的讯机vagrant SSH。好,连上虚拟机以后呢,我们由于MYSQL是装在docker上的,我们使用docker PS,看正在运行的我们这个容器,哎,我们现在呢,没有权限,那么速度doer PS,好,我们发现呢,没有任何人运行,但我们之前已经安装过了,为什么没有运行呢?因为我们每一个安装的镜像,最终启动的这些容器,我们DOCKER1启动,它都不是自动启动的,那我们想要自动启动,我们可以使用这个命令,首先呢,我们先来看so do docker PS-A,我们先来看出所有的。容器,哎,我们所有的容器里边,我们发现确实有我们的这个red以及MYSQL,但是他们都不是自动启动的,想要自动启动呢?我们可以使用这个命令,首先速度们必须以管理员权限,我docker update,我们要更新,更新谁呢?比如了我来更新red,来更新这个red,我们更新成什么呢?我们给一个参数叫杠杠restart restart等于always,诶,我们让它呢,每次都是自动启动。
06:28
好,那加上这个更新语句,重新来运行一下。好,我们继续呢,我们把my circle也这么一执行。MYSQL这么一直行,这样呢,以后只要我们虚拟机重启,那我们这一块呢,都会重新启动,我们可以测试一下。我们虚拟机重启,我们点击重启来看以后我们的MY以及能不能自动启动。那么现在呢,在这操作,这个连接已经被关闭了,诶,等它重启成功,我们使用w reta SSH命令重新连接上来。
07:04
好,现在连接上来以后呢,我们来重新看一下速度,Docker PS,诶我们发现呢,这两个在我们虚拟机一启动以后,Red跟马S都自动启动了。接下来我们来连接上我们虚拟机的MYSQL,我们来测试连接,现在已经是成功的了,好我们来连接上来,然后呢,我们来创建出各个微服务对应的数据库,那右键创建数据库,这个数据库呢,我们首先第一个鼓励mail,鼓励mail的我们PMS商品管理系统,诶我们商品服务呢,就对应商品管理系统的这个数据库,好我们都选中UTF8MB four,诶我选中这个,它能兼容UTF8,并且呢能解决一些字符乱码的问题。好,点击创建。同样的,我们把其他数据库都创建出来。
08:01
我们呢,就创建完了所有的数据库,这是订单系统的,诶这个PMS商品系统的S,这是cell营销系统的,那么u Ms是U的,我们用户系统的,包括呢,我们WMSVR,我们库存系统的。接下来呢,将我们这五个库对应的数据表文件里边的内容呢,我们直接打开复制粘贴给它执行过去,比如我们OMS选中CTRV,一定要复制粘贴过来,如果把文件直接拖过来,有可能会引起解析的字符编码问题,好,我们直接运行其他的所有数据库都一样。我们来挨个打开并执行。
我来说两句