首先,我们先从数模设计开始,这是一个系统的核心和精髓,决定了系统的架构和扩展控件。ETCloud的数模共有22张表,三个模块。

一、用户模块

用户模块主要由企业表、用户表、角色表、权限表构成。

1. 数据权限

用户共分为三大类(model_user.usertype)

1.Root用户    系统管理员 可以查看所有设备、所有产品、所有用户,拥有一切功能
2.Admin企业管理员    查看自己的产品和同一企业的产品
3.Normal普通用户    只查看自己的设备,以设备为维度,反查出产品

2.菜单按钮权限
用户的页面权限表是父子层级的表。一级为菜单权限,二级为按钮权限。

通过给角色赋予权限,再给用户赋予角色的方式实现不同用户展现不同的页面菜单和按钮

3. 用户来源

由ROOT(系统管理员)创建企业(附带创建默认管理员)

企业管理员可以创建自己的同一企业的管理员和普通用户

具有普通用户自动注册账号功能

具有自动注册企业的站好的功能

具有微信用户反向创建平台账号的功能

企业表model_eid

id varchar(36) varchar 36 NO   id@id
name varchar(100) varchar 100 YES   企业名称
describes varchar(100) varchar 100 YES   描述@描述
status tinyint(1) tinyint   YES   状态@是否禁用0禁用1开启
email varchar(255) varchar 255 YES   企业邮箱
phone varchar(255) varchar 255 YES   企业电话
address varchar(255) varchar 255 YES   企业地址
createtime timestamp timestamp YES CURRENT_TIMESTAMP 创建时间@创建时间

用户表mode_user

id varchar(32) varchar 32 NO   ID@ID  
eid varchar(32) varchar 32 YES   EID分组@EID分组
email varchar(100) varchar 100 YES   电子邮箱  
username varchar(100) varchar 100 YES   用户名  
password varchar(100) varchar 100 YES   密码@密码
phone varchar(100) varchar 100 YES   手机号  
role varchar(200) varchar 200 YES   角色@角色
status int(1) int   YES   状态,是否禁用@状态,是否禁用
usertype int(11) int   YES   用户类型@用户类型1ROOT2.admin,3.普通用户
max_dev int(255) int   YES   最大连接设备数
createtime timestamp timestamp YES CURRENT_TIMESTAMP 创建时间@创建时间
openid varchar(255) varchar 255 YES   微信openid

角色表model_role

id varchar(100) varchar 100 NO   主键@这个字段是主键
rolename varchar(100) varchar 100 YES   角色名称@角色名称
remark varchar(100) varchar 100 YES   备注@备注
powers varchar(100) varchar 100 YES   权限集合@权限集合
type int(11) int   YES   类型@0root1普通root2admin3普通4其他

权限表model_power

id varchar(11) varchar 11 NO   ID@ID
name varchar(100) varchar 100 YES   名称@名称
describe varchar(200) varchar 200 YES   描述@描述
pid varchar(11) varchar 11 YES   父Id

二、设备模块

设备模块主要由产品表、设备表、节点表构成

1.创建产品

产品的意义在于规范同一类设备。定义同一类产品的通信协议,其中产品密钥是为了为了自动注册时鉴别未知设备是否允许连接平台

2.创建节点

当我们新建好一个产品后,就需要定义这个产品具备那些功能,这些功能的可读、可写决定着在这个产品下的设备是否可以操作下发。以及设备的数据展现形式

3.创建设备

设备的引入有两种方式,一种是在平台手动创建,一种是自动注册。

每个设备都拥有自己的唯一序列号,作为clientid,用户名输入产品id,密码是token和设备序列号的sm加密。这样就可以一机一密。更好的确保保全性。

产品表model_product

id varchar(32) varchar 32 NO    
eid varchar(32) varchar 32 YES   租戶ID
name varchar(255) varchar 255 YES   产品名称
treaty varchar(255) varchar 255 YES   产品协议
describes varchar(255) varchar 255 YES   产品描述
types varchar(255) varchar 255 YES   产品类别
token varchar(255) varchar 255 YES   产品密钥
user_id varchar(32) varchar 32 YES   用户ID
createtime timestamp timestamp YES   创建时间

节点表model_node

varchar(32) id varchar 32 NO    
varchar(255) product_id varchar 255 YES   产品ID
varchar(255) name varchar 255 YES   节点名称
varchar(255) skey varchar 255 YES   节点标志
varchar(255) sunit varchar 255 YES   节点单位
varchar(255) rwtype varchar 255 YES   读写类型
varchar(255) types varchar 255 YES   节点类型(1数值型2开关型3字符串)
int(255) pic int   YES   节点图片
varchar(255) describes varchar 255 YES   节点描述

设备表model_device

id varchar(32) varchar 32 NO    
product_id varchar(255) varchar 255 YES   产品ID
user_id varchar(255) varchar 255 YES   用户ID
eid varchar(255) varchar 255 YES   租户ID
name varchar(255) varchar 255 YES   设备名称
position varchar(255) varchar 255 YES   设备位置
sn varchar(255) varchar 255 YES   设备序列号
createtime timestamp timestamp YES   创建时间
updatetime timestamp timestamp YES   更新时间
describes varchar(255) varchar 255 YES   设备描述
is_black tinyint(4) tinyint   YES   是否在黑名单
is_order_db tinyint(255) tinyint   YES   是否存储指令下发日志
is_conn_db tinyint(255) tinyint   YES   是否存储设备连接日志
is_node_db tinyint(255) tinyint   YES   是否存储功能节点日志

三、告警模块

告警模块主要由三张表构成

1. 告警模板

告警模板主要定义了推送给用户方式,告警的内容,可以填充告警的设备序列号,和异常数据值,异常节点

2.触发器

定义触发器的目的在于,过滤设备发送给平台的数据。如果设备数据异常了就及时推送给用户。便于对设备进行相应的处理。

3.触发器节点

主要用户给多个设备,或者一类产品下的所有设备添加触发器。如果某个节点数据异常了就指定告警模板的处理方式

告警模板model_warn_info

id varchar(255) varchar 255 NO    
name varchar(255) varchar 255 YES   告警模板名字
level int(255) int   YES   告警等级
content varchar(255) varchar 255 YES   告警内容
types int(255) int   YES   推送方式
way varchar(255) varchar 255 YES   推送路径
user_id varchar(255) varchar 255 YES   创建人ID
createtime timestamp timestamp YES   创建时间

触发器model_trigger

id varchar(32) varchar 32 NO    
product_id varchar(32) varchar 32 YES   产品ID
snids varchar(255) varchar 255 YES   设备序列号集合
name varchar(255) varchar 255 YES   触发器名字
content varchar(255) varchar 255 YES    
warn_id varchar(255) varchar 255 YES   告警模板ID
user_id varchar(255) varchar 255 YES   创建人
createtime timestamp timestamp YES   创建时间

触发器节点model_trigger_node

id varchar(32) varchar 32 NO    
trigger_id varchar(32) varchar 32 YES   触发器ID
node_id varchar(32) varchar 32 YES   节点ID
node_name varchar(255) varchar 255 YES   节点名称
node_key varchar(255) varchar 255 YES   节点KEY
node_type varchar(255) varchar 255 YES   节点类型
relation int(255) int   YES   触发关系
svalue varchar(255) varchar 255 YES   触发值

四、日志模块

日志模块主要由系统运行日志、告警日志、设备连接日志、指令下发日志、功能节点日志构成

1.系统运行操作日志 modle_syslog

id varchar(32) varchar 32 NO   ID@ID
model varchar(100) varchar 100 YES   模块@模块
level int(11) int   YES   等级@等级
eid varchar(32) varchar 32 YES   分组@分组
userid varchar(32) varchar 32 YES   用户ID@用户ID
source varchar(100) varchar 100 YES   来源@来源
content varchar(500) varchar 500 YES   内容@内容
createtime timestamp timestamp NO CURRENT_TIMESTAMP 创建时间@创建时间

2.告警日志model_warn_log

id varchar(255) varchar 255 NO    
sn varchar(255) varchar 255 YES   告警设备
content varchar(255) varchar 255 YES   告警内容
is_read int(11) int   YES   是否已读
warn_id varchar(255) varchar 255 YES   告警模板
createtime timestamp timestamp YES   创建时间
user_id varchar(255) varchar 255 YES    

3.设备连接日志model_client_log

id varchar(32) varchar 32 NO   主键
client_id varchar(255) varchar 255 YES   客户端id
connected int(11) int   YES   状态0下线,1上线
createtime datetime datetime   YES   上线时间
ip_address varchar(255) varchar 255 YES   客户端ip地址
port varchar(255) varchar 255 YES   客户端端口
user_name varchar(255) varchar 255 YES   用户名
sub_scriptioncnt int(11) int   YES    

4.指令下发日志model_order_log

id varchar(255) varchar 255 NO    
content varchar(255) varchar 255 YES   指令内容
create_time timestamp timestamp NO CURRENT_TIMESTAMP 创建时间
sn varchar(255) varchar 255 YES   设备序列号
topic varchar(255) varchar 255 YES   订单主题
user_id varchar(255) varchar 255 YES   用户id

5.功能节点日志model_node_log

id varchar(32) varchar 32 NO    
content varchar(255) varchar 255 YES   节点内容
create_time timestamp timestamp NO CURRENT_TIMESTAMP 创建时间
sn varchar(255) varchar 255 YES   节点序列号
topic varchar(255) varchar 255 YES   节点主题

五、公共模块

1.定时任务model_task

id varchar(32) varchar 32 NO    
taskgroup varchar(100) varchar 100 YES   任务组名@任务组名
taskname varchar(100) varchar 100 YES   任务名称@任务名称
cron varchar(100) varchar 100 YES   时间表达式@时间表达式
type int(11) int   YES   类型@1每天2一次
userid varchar(32) varchar 32 YES   用户ID@用户ID
taskdata datetime datetime   YES   定时日期@定时日期
tasktime datetime datetime   YES   定时时间@定时时间
createtime timestamp timestamp NO 0000-00-00 00:00:00 创建时间@创建时间

2.数据推送model_push

id varchar(36) varchar 36 NO   主键@这个字段是主键
servicehost varchar(36) varchar 36 YES   服务HOST@服务HOST
serviceport int(11) int   YES   服务PORT@服务PORT
dburl varchar(100) varchar 100 YES   点表推送URL@点表推送URL
dturl varchar(100) varchar 100 YES   数据推送URL@数据推送URL
sjurl varchar(100) varchar 100 YES   时间推送URL@时间推送URL
httptoken varchar(36) varchar 36 YES   HTTP头授权码@HTTP头授权码
secondcycle int(11) int   YES   调度周期@调度周期
startstatus varchar(36) varchar 36 YES   启用状态@启用状态
updatetime timestamp timestamp NO CURRENT_TIMESTAMP 修改时间@修改时间
note varchar(300) varchar 300 YES   备注@备注
roleid varchar(36) varchar 36 YES   所属组@所属组

3.版本管理model_version

id varchar(32) varchar 32 NO   id@id
versions varchar(100) varchar 100 YES   版本号@版本号
remark varchar(100) varchar 100 YES   备注@备注
content varchar(100) varchar 100 YES   内容@内容
createtime timestamp timestamp YES   创建时间@创建时间

4.字典表model_dictionary

id varchar(255) varchar 255 NO    
dname varchar(255) varchar 255 YES   字典名称
dvalue varchar(255) varchar 255 YES   字典值
num int(11) int   YES   字典code
pid varchar(255) varchar 255 YES   字典父ID
status int(11) int   YES   字典状态

从零开始搭建物联网平台(三)数模设计相关推荐

  1. 从零开始搭建物联网平台(1):开篇

    前言: 读大学的时候学的是物联网工程,大概是在大二的时候开始接触单片机,那时候特喜欢捣鼓那些东西,就觉得特别酷有极客范.还记得第一次做物联网相关的是一个远程控制的开关,第一次调通的时候真的很兴奋,啥也 ...

  2. 从零开始搭建物联网平台(6):消息的持久化

    遇到的问题: 查看了EMQ文档发现并不提供消息的持久化功能,MQTT协议是按照设备一直在线设计的,数据都是保存在内存里的,但是考虑到用户上传传感器数据不可能接收了就扔掉,那样就没法查看历史数据了,所以 ...

  3. 从零开始搭建SpringBoot项目(三)——小程序Uni-app项目搭建(详细教程和实战)

    前情回顾 从零开始搭建SpringBoot项目(一)--开发环境搭建 从零开始搭建SpringBoot项目(二)--Swagger接口测试平台搭建 目录 前情回顾 一.前置条件 二.本篇介绍 三.获取 ...

  4. 如何从零开始搭建直播平台,从flash时代的rtmp到过渡期的flv和webrtc的未来以及简单聊聊webassmbly

    前言 在2020年12月flash正式落幕之后,流媒体领域是否有新的技术替代?有没有较为成熟的整体方案?市面上的直播/流媒体平台都在使用哪些方案?有没有通用又简单快速的搭建方案?不同的方案在行业内部也 ...

  5. 数模设计和GND的分割设计

    1.板层的结构 板层的结构是决定系统的EMC性能一个很重要的因素.一个好的板层结构对抑制PCB中辐射起到良好的效果.在现在常见的高速电路系统中大多采用多层板而不是单面板和双面板.在设计多面板时候需要注 ...

  6. Spring+mqtt 搭建物联网平台服务端

    服务端采用Springboot.JPA.Mysql为基本框架,同时接入了EMQ.JWT.微信认证.Lombook.的一些组件 一.框架搭建 使用IDEA创建项目,选择spring initializr ...

  7. GPRS连接阿里云物联网平台三

    记录设备接入阿里云的过程 三,下发命令 上一篇写了上传数据,今天继续分享如何从云平台下发命令控制终端设备 1,添加功能,要实现新的事件第一件事还是在阿里云添加功能 还是添加一个自定义功能,就是个开关功 ...

  8. Spring Boot Vue从零开始搭建系统(三):项目前后端分离

    转载 http://www.360doc.com/content/19/1030/11/67080110_870024161.shtml 前言 本文主要是想通过后端 Spring Boot 技术和前端 ...

  9. 开源系统搭建物联网和智能家居平台

    一.项目简介 1. 物美智能 (wumei-smart) 是一个简单易用的生活物联网平台.可用于搭建物联网平台以及二次开发和学习. 2. 设备接入使用EMQX消息服务器,加密认证:后端采用Spring ...

  10. 低代码构建物联网平台,让物联网项目更简单

    物联网(Internet of Things,IoT)是普遍联系的网络,是基于互联网.电信网等信息网络的承载体,可以视为互联网的延伸和升级,是科学技术发展的必然,也被称为继计算机.互联网和移动通信网络 ...

最新文章

  1. java-com-util-common-service:BaseService.java
  2. VS2017 报错该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
  3. nagios errors
  4. 360 自动打开word_Word文档高手的组合键用法,你知道几个?
  5. P1457 城堡 The Castle 位运算+BFS+思维(难题,好题)
  6. 亚马逊出的平板电脑_亚马逊推出了这款不到400元的平板电脑!学生党的福音!...
  7. CUDA TOOlkit Programming Guide 2. Programming Model
  8. python 通过ip获取城市_Python根据用户IP判断所属城市 !
  9. 另类windows与ubuntu共享实现
  10. 06-移动端开发教程-fullpage框架
  11. 关于Unity中DOTween插件的使用(专题一)
  12. 临时邮箱有什么用,推荐5个临时邮箱
  13. iPhone长截图快捷指令(科技兽修改版)
  14. calib matlab,toolbox_calib 图片处理,各种用于 的.M文件,非常适 初学者。 matlab 242万源代码下载- www.pudn.com...
  15. 逻辑函数的描述工具介绍
  16. 骑士CMS4.1.23本地包含漏洞
  17. CTF竞赛实战 中国菜刀与一句话木马
  18. C语言写出猜数字游戏的代码
  19. python-使用pycaw设置电脑音量(包含转换)
  20. java接口里面可以定义变量么?

热门文章

  1. 基于VHDL的vivado2017.4使用教程
  2. 台电固态硬盘用什么测试软件,常规测试、实际使用测试与总结_固态硬盘评测-中关村在线...
  3. 微信小程序实现轮播图
  4. 京东发布《未来科技趋势白皮书》,101页详解5大关键技术(附PDF下载)
  5. 漏洞扫描工具AppScan下载网盘
  6. 虚拟化试题1-网络和存储
  7. plsqldev显示语言有问题
  8. win32com 读取excel
  9. maven导入ojdbc14.jar
  10. 如何个性化更改Eclipse字体及背景颜色