1.0.3 • Published 4 years ago

sofa-database-helper v1.0.3

Weekly downloads
2
License
ISC
Repository
-
Last release
4 years ago

数据库选型

mysql

优点

  1. mysql对大量数据的操作更加稳定,速度更快
  2. mysql对事务支持友好(虽然不确定我们是否需要使用事务)
  3. mysql占用空间小,在大数据量时不需要考虑内存问题
  4. 目前公司内部使用mysql,使用其他的可能会有额外的成本

缺点

  1. 数据库表字段扩展成本高,所以建议设计预留字段

其他

为了提升运行速度,之后可以考虑采用 redis + mysql 的方式

数据库对外接口

具体接口参数和返回值参见http://gitlab.sftcwl.com/sftc-fe/sofa/wikis/home

*接口全部以promise形式返回(除了getPoolConnection建立数据库连接以外)

例如添加模板

addTemplate(templateConfig).then((response) => {console.log(response)});

数据库操作相关

内容说明
checkDbConnect测试数据库连接状态
getPoolConnection连接数据库

模板相关

内容说明
addTemplate保存模板信息
getTemplates获取全部模板
getTemplatesByName根据模板名称获取模板数据(模板姓名是否存在、模板查询、模板姓名sug)
setTemplate更新模板(更新模板版本号等)
setTemplateStatusById删除模板(更新模板status)
setTemplateApproveStatusById更改模板审批状态(管理员通过发布者发布的模板)

日志相关

内容说明
addLog添加日志
getLogs获取日志

实例相关

内容说明
addInstance添加实例
getInstances获取实例
getInstancesByTemplateId获取模板下的全部实例

用户相关

内容说明
addUser添加用户(在用户发布模板、创建实例时记录用户信息和权限)
updateUser更新用户
getUsers获取用户

数据库表设计

模板表 template

功能:记录模板的配置信息

字段名类型说明实例/default允许空值
idint唯一标识符,自增1
namevarchar(50)模板名称,英文命名,推荐全小写,使用中划线连字符;唯一;react-project-template
typevarchar(20)模板类型(可选值:project、module、component、micro)project
framevarchar(20)使用的前端框架,目前有vue、react、react-native、mp、h5vue
isTstinyint(1)是否使用了typescript做为开发语言1 / 0
isBlanktinyint(1)用于区分开发模板和应用,true是模板1 / 0
parentIdint父级id,部分模板需要指定的父级使用环境,比如module2
descriptiontext模板介绍,具体功能,适用场景等;react最佳实践
pathvarchar(255)模板存储位置http://gitlab.sftcwl.com/sftc-fe/react-project-template
versionvarchar(10)当前版本,每次更新模板,自动打tag,简单管理版本号,三位自增版本号,从末位版本号开始,自增到9,向上进一位;0.0.9
statustinyint(4)模板状态(发布者)1:有效,2:无效1
approveStatustinyint(4)模板审核状态(管理员)1:有效,2:无效2
publishervarchar(50)发布人信息,会在发布时,获取Git登录信息,此处为Git账号信息;yxlichun@126.com
publishTimetimestamp发布时间1559133464
modifyTimetimestamp修改时间1559133464
pluginsjson将当前文件、config等以参数的形式提供给插件,以进行一些后期的特殊处理;

实例表 instance

功能:记录实例的配置信息,用于进行代码管控;记录用户的每次代码生成、更新、移除操作;

字段名类型说明实例/default允许空值
idint唯一标识符1
namevarchar(50)代码块名称,项目名称、模块名称、组件名称等等;sf-print
typevarchar(20)实际是与template的type一致;component
templateIdint模板idvue
operatorvarchar(50)操作人Git信息yxlichun@126.com
configjson用户输入的交互信息{“name”: “ddd”}
statustinyint(4)1:有效,2:无效1
parentIdint (id)项目归属,记录的是当前生成的代码片段被应用于哪个实际项目2
createTimetimestamp发布时间1559133464
modifyTimetimestamp修改时间1559133464

日志表 log

功能:记录用户的每次命令操作

字段名类型说明实例/default允许空值
idint唯一标识符, 自增1
commandvarchar(50)用户命令Sofa create module
operatorvarchar(50)操作人Git信息yxlichun@126.com
configjson用户输入的交互信息{“name”: “ddd”,“template”: “vue-module”,}
operateTimetimestamp发布时间1559133464

用户表 user

功能:记录用户信息

字段名类型说明实例/default允许空值
idint唯一标识符1
namevarchar(50)git用户名yxlichun@126.com
authtinyint(4)用户权限(1:超管 2:发布者 3:普通用户)1
1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago