首先介紹一下我遇到問題如圖:
我接收到場景模塊其實想法很簡單,就是一個場景悦污,一個場景對條件一對多铸屉,一個場景對動作一對多,然而我想法太簡單了切端,沒有考慮到不同場景有多個設(shè)備彻坛,每個設(shè)備具有不同條件,比如空調(diào)在關(guān)機情況下其實可以檢測出房間內(nèi)的溫度踏枣,根據(jù)溫度決定是否開空調(diào)昌屉,有要開多少度數(shù)?
聲光報警器: 需要達(dá)到閃光+85dB才能去執(zhí)行相應(yīng)的報警茵瀑。
現(xiàn)在仔細(xì)想想思路很重要:
首先肯定的是:
每個場景表scene
設(shè)備條件和規(guī)則表 rule
具體執(zhí)行表 action
上面表示基本表還不全间驮,現(xiàn)在說具體思路首先我做一個樹狀圖:
為什么是這樣,我們肯定的是場景是唯一的肯定和規(guī)則和執(zhí)行方案應(yīng)該是一對多马昨,
但是一個規(guī)則可以有多個執(zhí)行方案:比如家里我設(shè)定一個規(guī)則竞帽,一旦家里溫度達(dá)到30度,就開啟空調(diào)和打開電風(fēng)扇鸿捧,窗簾拉上屹篓,這里很明白的表達(dá)了,需要多個設(shè)備執(zhí)行匙奴,所以數(shù)據(jù)庫不可能這么多設(shè)備放在一行抱虐,多以就需要多個執(zhí)行方案
但是一個執(zhí)行設(shè)備,也有可能被多個地方執(zhí)行饥脑,比如: 一個人在家里感應(yīng)器感受到陽光太強恳邀,強光規(guī)則被觸發(fā),也會拉上窗簾灶轰。
所以規(guī)則和執(zhí)行設(shè)備肯定是多對多的關(guān)系谣沸。這里要注意!
當(dāng)然還要表示出場景和執(zhí)行方案和規(guī)則是多對多笋颤,最好的方式就是多創(chuàng)建一個關(guān)聯(lián)規(guī)則組表乳附,作為中介!