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

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

一、用户模块

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

1. 数据权限

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

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

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

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

3. 用户来源

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

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

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

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

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

企业表model_eid

idvarchar(36)varchar36NO id@id
namevarchar(100)varchar100YES 企业名称
describesvarchar(100)varchar100YES 描述@描述
statustinyint(1)tinyint YES 状态@是否禁用0禁用1开启
emailvarchar(255)varchar255YES 企业邮箱
phonevarchar(255)varchar255YES 企业电话
addressvarchar(255)varchar255YES 企业地址
createtimetimestamptimestampYESCURRENT_TIMESTAMP创建时间@创建时间

用户表mode_user

idvarchar(32)varchar32NO ID@ID 
eidvarchar(32)varchar32YES EID分组@EID分组
emailvarchar(100)varchar100YES 电子邮箱 
usernamevarchar(100)varchar100YES 用户名 
passwordvarchar(100)varchar100YES 密码@密码
phonevarchar(100)varchar100YES 手机号 
rolevarchar(200)varchar200YES 角色@角色
statusint(1)int YES 状态,是否禁用@状态,是否禁用
usertypeint(11)int YES 用户类型@用户类型1ROOT2.admin,3.普通用户
max_devint(255)int YES 最大连接设备数
createtimetimestamptimestampYESCURRENT_TIMESTAMP创建时间@创建时间
openidvarchar(255)varchar255YES 微信openid

角色表model_role

idvarchar(100)varchar100NO 主键@这个字段是主键
rolenamevarchar(100)varchar100YES 角色名称@角色名称
remarkvarchar(100)varchar100YES 备注@备注
powersvarchar(100)varchar100YES 权限集合@权限集合
typeint(11)int YES 类型@0root1普通root2admin3普通4其他

权限表model_power

idvarchar(11)varchar11NO ID@ID
namevarchar(100)varchar100YES 名称@名称
describevarchar(200)varchar200YES 描述@描述
pidvarchar(11)varchar11YES 父Id

二、设备模块

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

1.创建产品

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

2.创建节点

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

3.创建设备

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

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

产品表model_product

idvarchar(32)varchar32NO  
eidvarchar(32)varchar32YES 租戶ID
namevarchar(255)varchar255YES 产品名称
treatyvarchar(255)varchar255YES 产品协议
describesvarchar(255)varchar255YES 产品描述
typesvarchar(255)varchar255YES 产品类别
tokenvarchar(255)varchar255YES 产品密钥
user_idvarchar(32)varchar32YES 用户ID
createtimetimestamptimestampYES 创建时间

节点表model_node

varchar(32)idvarchar32NO  
varchar(255)product_idvarchar255YES 产品ID
varchar(255)namevarchar255YES 节点名称
varchar(255)skeyvarchar255YES 节点标志
varchar(255)sunitvarchar255YES 节点单位
varchar(255)rwtypevarchar255YES 读写类型
varchar(255)typesvarchar255YES 节点类型(1数值型2开关型3字符串)
int(255)picint YES 节点图片
varchar(255)describesvarchar255YES 节点描述

设备表model_device

idvarchar(32)varchar32NO  
product_idvarchar(255)varchar255YES 产品ID
user_idvarchar(255)varchar255YES 用户ID
eidvarchar(255)varchar255YES 租户ID
namevarchar(255)varchar255YES 设备名称
positionvarchar(255)varchar255YES 设备位置
snvarchar(255)varchar255YES 设备序列号
createtimetimestamptimestampYES 创建时间
updatetimetimestamptimestampYES 更新时间
describesvarchar(255)varchar255YES 设备描述
is_blacktinyint(4)tinyint YES 是否在黑名单
is_order_dbtinyint(255)tinyint YES 是否存储指令下发日志
is_conn_dbtinyint(255)tinyint YES 是否存储设备连接日志
is_node_dbtinyint(255)tinyint YES 是否存储功能节点日志

三、告警模块

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

1. 告警模板

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

2.触发器

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

3.触发器节点

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

告警模板model_warn_info

idvarchar(255)varchar255NO  
namevarchar(255)varchar255YES 告警模板名字
levelint(255)int YES 告警等级
contentvarchar(255)varchar255YES 告警内容
typesint(255)int YES 推送方式
wayvarchar(255)varchar255YES 推送路径
user_idvarchar(255)varchar255YES 创建人ID
createtimetimestamptimestampYES 创建时间

触发器model_trigger

idvarchar(32)varchar32NO  
product_idvarchar(32)varchar32YES 产品ID
snidsvarchar(255)varchar255YES 设备序列号集合
namevarchar(255)varchar255YES 触发器名字
contentvarchar(255)varchar255YES  
warn_idvarchar(255)varchar255YES 告警模板ID
user_idvarchar(255)varchar255YES 创建人
createtimetimestamptimestampYES 创建时间

触发器节点model_trigger_node

idvarchar(32)varchar32NO  
trigger_idvarchar(32)varchar32YES 触发器ID
node_idvarchar(32)varchar32YES 节点ID
node_namevarchar(255)varchar255YES 节点名称
node_keyvarchar(255)varchar255YES 节点KEY
node_typevarchar(255)varchar255YES 节点类型
relationint(255)int YES 触发关系
svaluevarchar(255)varchar255YES 触发值

四、日志模块

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

1.系统运行操作日志 modle_syslog

idvarchar(32)varchar32NO ID@ID
modelvarchar(100)varchar100YES 模块@模块
levelint(11)int YES 等级@等级
eidvarchar(32)varchar32YES 分组@分组
useridvarchar(32)varchar32YES 用户ID@用户ID
sourcevarchar(100)varchar100YES 来源@来源
contentvarchar(500)varchar500YES 内容@内容
createtimetimestamptimestampNOCURRENT_TIMESTAMP创建时间@创建时间

2.告警日志model_warn_log

idvarchar(255)varchar255NO  
snvarchar(255)varchar255YES 告警设备
contentvarchar(255)varchar255YES 告警内容
is_readint(11)int YES 是否已读
warn_idvarchar(255)varchar255YES 告警模板
createtimetimestamptimestampYES 创建时间
user_idvarchar(255)varchar255YES  

3.设备连接日志model_client_log

idvarchar(32)varchar32NO 主键
client_idvarchar(255)varchar255YES 客户端id
connectedint(11)int YES 状态0下线,1上线
createtimedatetimedatetime YES 上线时间
ip_addressvarchar(255)varchar255YES 客户端ip地址
portvarchar(255)varchar255YES 客户端端口
user_namevarchar(255)varchar255YES 用户名
sub_scriptioncntint(11)int YES  

4.指令下发日志model_order_log

idvarchar(255)varchar255NO  
contentvarchar(255)varchar255YES 指令内容
create_timetimestamptimestampNOCURRENT_TIMESTAMP创建时间
snvarchar(255)varchar255YES 设备序列号
topicvarchar(255)varchar255YES 订单主题
user_idvarchar(255)varchar255YES 用户id

 

5.功能节点日志model_node_log

idvarchar(32)varchar32NO  
contentvarchar(255)varchar255YES 节点内容
create_timetimestamptimestampNOCURRENT_TIMESTAMP创建时间
snvarchar(255)varchar255YES 节点序列号
topicvarchar(255)varchar255YES 节点主题

五、公共模块

1.定时任务model_task

idvarchar(32)varchar32NO  
taskgroupvarchar(100)varchar100YES 任务组名@任务组名
tasknamevarchar(100)varchar100YES 任务名称@任务名称
cronvarchar(100)varchar100YES 时间表达式@时间表达式
typeint(11)int YES 类型@1每天2一次
useridvarchar(32)varchar32YES 用户ID@用户ID
taskdatadatetimedatetime YES 定时日期@定时日期
tasktimedatetimedatetime YES 定时时间@定时时间
createtimetimestamptimestampNO0000-00-00 00:00:00创建时间@创建时间

2.数据推送model_push

idvarchar(36)varchar36NO 主键@这个字段是主键
servicehostvarchar(36)varchar36YES 服务HOST@服务HOST
serviceportint(11)int YES 服务PORT@服务PORT
dburlvarchar(100)varchar100YES 点表推送URL@点表推送URL
dturlvarchar(100)varchar100YES 数据推送URL@数据推送URL
sjurlvarchar(100)varchar100YES 时间推送URL@时间推送URL
httptokenvarchar(36)varchar36YES HTTP头授权码@HTTP头授权码
secondcycleint(11)int YES 调度周期@调度周期
startstatusvarchar(36)varchar36YES 启用状态@启用状态
updatetimetimestamptimestampNOCURRENT_TIMESTAMP修改时间@修改时间
notevarchar(300)varchar300YES 备注@备注
roleidvarchar(36)varchar36YES 所属组@所属组

3.版本管理model_version

idvarchar(32)varchar32NO id@id
versionsvarchar(100)varchar100YES 版本号@版本号
remarkvarchar(100)varchar100YES 备注@备注
contentvarchar(100)varchar100YES 内容@内容
createtimetimestamptimestampYES 创建时间@创建时间

4.字典表model_dictionary

idvarchar(255)varchar255NO  
dnamevarchar(255)varchar255YES 字典名称
dvaluevarchar(255)varchar255YES 字典值
numint(11)int YES 字典code
pidvarchar(255)varchar255YES 字典父ID
statusint(11)int YES 字典状态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RedEric

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值