數(shù)據(jù)關(guān)聯(lián)更新
在一些復雜場景中,需要多張表進行配合,才能滿足業(yè)務(wù)的需求。典型的場景如出入庫:出庫、入庫、庫存 分別是3張表單,出入庫時會隨時影響庫存表中的數(shù)量。又比如會員充值場景中,充值成功后,要更新會員儲值卡的余額;會員消費積分場景中,下單支付成功后積分自動增加。這時就需要用到本節(jié)重點講到的關(guān)聯(lián)更新:當一個表的數(shù)據(jù)變化時,自動更新另一個表的數(shù)據(jù)。
關(guān)聯(lián)名稱
關(guān)聯(lián)更新設(shè)置的名稱
更新時點
支持數(shù)據(jù)新增時、數(shù)據(jù)更新時、數(shù)據(jù)刪除時和支付完成時(需開通支付)。注意這里的更新時點是針對當前表單(即觸發(fā)表或數(shù)據(jù)源表)而言。
被更新表
需要被更新數(shù)據(jù)的表單,我們用”B”表示,當前表(即觸發(fā)表或數(shù)據(jù)源表)用”A“表示。
關(guān)聯(lián)條件
被更新表 B 和觸發(fā)表 A 數(shù)據(jù)之間的對應(yīng)關(guān)系,只有滿足此對應(yīng)關(guān)系時,B 表數(shù)據(jù)才會被更新。支持1個或多字字段相等的對應(yīng)關(guān)系。
關(guān)聯(lián)條件字段一般是能唯一確定一條數(shù)據(jù)的字段,設(shè)置錯誤可能導致數(shù)據(jù)混亂,切記
比如一般會選擇會員編號、學號、手機號等能夠唯一標識數(shù)據(jù)的字段作為關(guān)聯(lián)條件。
更新字段
需要被更新的字段。指被更新表(即 B 表中的字段)
更新字段值
支持固定值、觸發(fā)表中的字段值(即更新的值來源于觸發(fā)表中的數(shù)據(jù))
,如果是數(shù)字類型的字段,還支持簡單的加減乘除四則運算。
如果你熟悉SQL,可以用如下MYSQL語句進行類比(僅僅是類比,實際不是執(zhí)行此語句):

滿足特定條件才能觸發(fā)更新
可以附加一定的固定條件,滿足此條件時才會觸發(fā)關(guān)聯(lián)更新,作為觸發(fā)的前提條件。同樣支持多個條件,用 并且(and)、或者(or)進行連接。
被更新表中沒有匹配數(shù)據(jù)時的處理
如果勾選,在被更新表中沒有匹配的數(shù)據(jù)時,將會自動新增一條數(shù)據(jù)。
演示:支付成功更新會員積分場景。




關(guān)聯(lián)更新設(shè)置因為比較復雜,所以在設(shè)置完成后,一定要先進行測試,待沒有問題后再正式用于生產(chǎn)環(huán)境。否則可能導致無法恢復的數(shù)據(jù)錯亂。
對子表的每一條數(shù)據(jù)進行編號
使用場景:將子表中的每一條數(shù)據(jù)更新到一個總表中,且子表的數(shù)據(jù)修改更新時,總表中對應(yīng)的數(shù)據(jù)也需要更新。總表中一個手機號或證件號可能存在多條數(shù)據(jù),這樣就不能用手機號或證件號作為更新條件,需要運用函數(shù)將子表的每一條數(shù)據(jù)進行編號,用編號作為更新條件。

總結(jié)
關(guān)聯(lián)更新將表單的應(yīng)用場景從簡單的單表應(yīng)用擴展到多表應(yīng)用,為構(gòu)建復雜應(yīng)用系統(tǒng)提供了可能。再結(jié)合填寫關(guān)聯(lián)、表單間跳轉(zhuǎn)傳值、多表交叉查看、子表單、函數(shù)和公式、流程,可以構(gòu)建更多復雜的應(yīng)用系統(tǒng)。這些高級功能在以后的課程中會逐步講解。