從零開始搭建物聯網平臺(三)數模設計

       首先,我們先從數模設計開始,這是一個系統的核心和精髓,決定了系統的架構和擴展控件。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   字典狀態
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章