首页 > 其他 > 详细

SAAS-HEM

时间:2020-12-09 10:02:33      阅读:43      评论:0      收藏:0      [点我收藏+]

1、云服务

 

  云服务三种模式

技术分享图片

 

 

 区别:

  IaaS:提供基础的硬件设施,包括cpu,内存等,我们需要关心使用什么数据库,什么存储空间等。

  PaaS:提供平台,不需要关心操作系统,存储等。

  SaaS: 用户不需要关心基础设施,直接根据需求使用,不需要开发人员了。

技术分享图片

 

 

 2、SaaS

技术分享图片

 

 技术分享图片

 

 

 优点

技术分享图片

 

 

 3、SaaS-Hrm

原型分析法:

技术分享图片

 

 

 UML:

  我们使用UML来进行原型的搭建。

用例图:

  技术分享图片

需求分析软件:

  技术分享图片

 

 

 开发方式:

  前后端分离:

  技术分享图片

 

 

 技术架构:

  技术分享图片

 

 

 系统架构图:

技术分享图片

 

 

 4、工程搭建

1、创建父工程

  父工程只包含pom.xml,其中定义了简单的依赖。

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ihrm</groupId>
    <artifactId>SaaS_HRM</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--打包及工程名描述等-->
    <packaging>pom</packaging>
    <name>ihrm_parent</name>
    <description>IHRM父工程</description>

    <!--加入springboot依赖-->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.3.5.RELEASE</version>
    </parent>

    <!--配置管理-->
    <properties>
        <java.version>1.8</java.version>
        <fastjson.version>1.2.71</fastjson.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <!--直接加入了依赖-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.16</version>
        </dependency>
    </dependencies>

    <!--用于创建远程仓库-->
    <repositories>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

2、构建公共子模块

公共子模块包含:

  返回结果实体类,返回码定义类型,分布式id生成器。

id生成: 

  • 数据库主键自增: 可能会合并数据库,表,导致重复
  • UUID : 比较长,可能重复
  • 借助全局redis
  • 雪花算法:

  技术分享图片

 

  雪花算法就是判断当前的毫秒数与上一时刻是否一致,不一致直接生成,一致将序号加1,超过最大序号推迟到下一毫秒。

3、微服务模块Crud搭建。

  使用postman测试。

5、数据库设计

1、数据库的范式

  技术分享图片

 

  第三范式就是不存在冗余信息,能推导出来的列都不满足。

 反三范式:可根据需求适当添加冗余信息,这可能会违反三范式。

 2、多租户Saas解决方案

  技术分享图片

 

   技术分享图片

 

 3、数据库设计

  采用共享数据库,独立schema的结构。(mysql是指独立的database)

  技术分享图片

 

 技术分享图片

 

 技术分享图片

 

 采用共享的方式

技术分享图片

 

 6、前端脚手架

 VUE基本工具类整合,主要是CSS。

 目录结构:

技术分享图片

 

 执行过程

技术分享图片

 

 7、系统用户权限设计

1、组织机构管理

 

 

SAAS-HEM

原文:https://www.cnblogs.com/baldprogrammer/p/14105992.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!