一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置和方法
【專利摘要】本發(fā)明提出了一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置和方法,該裝置包括:設(shè)置模塊,創(chuàng)建和定義數(shù)據(jù)庫表;配置模塊,根據(jù)設(shè)置模塊數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性字段,同時保存配置信息,包括數(shù)據(jù)庫表信息和屬性關(guān)系對;驅(qū)動檢測模塊,響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的屬性關(guān)系對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息;解析模塊,解析經(jīng)驅(qū)動檢測模塊處理的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。通過配置屬性關(guān)系對,數(shù)據(jù)聯(lián)動更加靈活,且在現(xiàn)有的框架下增加或變更數(shù)據(jù)都不會給開發(fā)人員帶來額外的工作量,維護(hù)更加方便。
【專利說明】一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別涉及一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置和方法。
【背景技術(shù)】
[0002] 級聯(lián)菜單,對于一個多條件的查詢,在選擇了一個菜單項(xiàng)后,另外一個下拉菜單能 夠根據(jù)選擇的第一個菜單項(xiàng)顯示其所有子菜單項(xiàng)?,F(xiàn)有利用級聯(lián)菜單實(shí)現(xiàn)數(shù)據(jù)聯(lián)動的方式 包括通過某種語言,將前一菜單與后一菜單關(guān)聯(lián)的屬性和屬性值以代碼的形式全部固定在 程序中。特別是在項(xiàng)目開發(fā)的過程中,開發(fā)周期固定,開發(fā)人員一般都會保守地采取固定代 碼的方式以減少可能的風(fēng)險,但是采用現(xiàn)有方式存在數(shù)據(jù)聯(lián)動不夠靈活的問題,后續(xù)維護(hù) 工作量大。
【發(fā)明內(nèi)容】
[0003] 針對現(xiàn)有的使用級聯(lián)菜單中存在的問題,本發(fā)明提出了基于事件驅(qū)動的數(shù)據(jù)聯(lián)動 裝置和方法,增加數(shù)據(jù)聯(lián)動的靈活性和易維護(hù)性。
[0004] 有鑒于此,本發(fā)明提出了一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置,該裝置包括:
[0005] 設(shè)置模塊,創(chuàng)建和定義數(shù)據(jù)庫表;
[0006] 配置模塊,根據(jù)設(shè)置模塊數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性 字段,同時保存配置信息,包括數(shù)據(jù)庫表信息和屬性關(guān)系對;
[0007] 驅(qū)動檢測模塊,響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹 配的屬性關(guān)系對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息;
[0008] 解析模塊,解析經(jīng)驅(qū)動檢測模塊處理的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。
[0009] 在上述技術(shù)方案中,優(yōu)選地,還包括索引創(chuàng)建模塊,根據(jù)數(shù)據(jù)庫表中屬性值的特點(diǎn) 創(chuàng)建索引。
[0010] 在該技術(shù)方案中,對于經(jīng)過數(shù)據(jù)聯(lián)動篩選的數(shù)據(jù),用戶在選擇目標(biāo)數(shù)據(jù)時仍要在 大量的數(shù)據(jù)中進(jìn)行選擇,通過創(chuàng)建合適的索引,把可選擇的數(shù)據(jù)范圍進(jìn)一步縮小。
[0011] 在上述技術(shù)方案中,優(yōu)選地,屬性關(guān)系對由具有驅(qū)動性質(zhì)的屬性和被該屬性驅(qū)動 的屬性構(gòu)成。
[0012] 在該技術(shù)方案中,屬性關(guān)系對是有方向性的,具有驅(qū)動性質(zhì)屬性的一方響應(yīng)事件 變化后,與其關(guān)聯(lián)的屬性的屬性值范圍被驅(qū)動發(fā)生聯(lián)動變化。
[0013] 根據(jù)本發(fā)明的又一方面,還提出了一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法,該方法包 括:
[0014] 創(chuàng)建和定義數(shù)據(jù)庫表;
[0015] 根據(jù)數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性字段,同時保存配置 信息,包括數(shù)據(jù)庫表信息和屬性關(guān)系對;
[0016] 響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的屬性關(guān)系 對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息;
[0017] 解析處理后的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。
[0018] 在上述技術(shù)方案中,優(yōu)選地,還包括根據(jù)數(shù)據(jù)庫表中屬性值的特點(diǎn)創(chuàng)建索引。
[0019] 在上述技術(shù)方案中,優(yōu)選地,屬性關(guān)系對由具有驅(qū)動性質(zhì)的屬性和被該屬性驅(qū)動 的屬性構(gòu)成。
[0020] 本發(fā)明技術(shù)方案帶來的有益效果是:通過配置屬性關(guān)系對,數(shù)據(jù)聯(lián)動更加靈活,且 在現(xiàn)有的框架下增加或變更數(shù)據(jù)都不會給開發(fā)人員帶來額外的工作量,維護(hù)更加方便;另 夕卜,程序代碼的通用性增強(qiáng),開發(fā)人員不用編寫大量的代碼去固定各個屬性值及其關(guān)系,在 一定程度上減輕了開發(fā)人員的工作量。
【專利附圖】
【附圖說明】
[0021] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置的框圖;
[0022] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法的流程圖;
[0023] 圖3示出了根據(jù)本發(fā)明的實(shí)施例的一對一屬性關(guān)聯(lián)處理的示意圖;
[0024] 圖4示出了根據(jù)本發(fā)明的實(shí)施例的一對多屬性關(guān)聯(lián)處理的示意圖。
【具體實(shí)施方式】
[0025] 為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說明的是,在不沖突的情況下,本發(fā)明的實(shí)施 例及實(shí)施例中的特征可以相互組合。
[0026] 圖1示出了根據(jù)本發(fā)明的實(shí)施例的一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置的框圖。
[0027] 如圖1所示,基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置100包括以下模塊:設(shè)置模塊102,用 于創(chuàng)建和定義數(shù)據(jù)庫表;配置模塊104,用于根據(jù)設(shè)置模塊數(shù)據(jù)庫表的屬性字段信息,配置 有數(shù)據(jù)引用關(guān)系的屬性字段,同時保存配置信息,包括數(shù)據(jù)庫表信息和屬性關(guān)系對;驅(qū)動檢 測模塊106,用于響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的屬性 關(guān)系對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息;解析模塊108, 用于解析經(jīng)驅(qū)動檢測模塊處理的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。
[0028] 在本技術(shù)方案中,在設(shè)置模塊102完成設(shè)置后,通過配置模塊104把相關(guān)屬性配置 為屬性關(guān)系對,屬性關(guān)系對由具有驅(qū)動性質(zhì)的屬性和被該屬性驅(qū)動的屬性構(gòu)成,一個屬性 可以同時有驅(qū)動性質(zhì)和被驅(qū)動性質(zhì),但是這兩種性質(zhì)是在不同的屬性對中體現(xiàn)的,且屬性 對中屬性之間的驅(qū)動關(guān)系不可逆;一個具有驅(qū)動性質(zhì)的屬性可以對應(yīng)一個或多個被驅(qū)動的 屬性。另外,設(shè)置特定查詢語句,用于聯(lián)動數(shù)據(jù)的篩選。保存配置信息,包括數(shù)據(jù)庫表信息 和屬性關(guān)系對,保存形式可以是數(shù)據(jù)庫表、xml文件、配置文件或者其他具有存儲性質(zhì)的數(shù) 據(jù)文件中;
[0029] 用戶在界面通過下拉菜單、彈窗選擇或者手動錄入數(shù)據(jù),驅(qū)動檢測模塊106響應(yīng) 用戶的操作事件,檢測事件中屬性值對應(yīng)的屬性是否在屬性關(guān)系對文件中有保存,該屬性 是否具有驅(qū)動性質(zhì),如果有,則將屬性賦值到配置模塊104的特定查詢語句中;
[0030] 解析模塊108解析驅(qū)動檢測模塊106處理后的事件內(nèi)容,執(zhí)行查詢語句,初始化操 作界面,驅(qū)動數(shù)據(jù)聯(lián)動變化。初始化后可以直接篩選出用戶需要用到的數(shù)據(jù)供用戶選擇,或 者,在用戶執(zhí)行某個動作按鈕或者使用某個快捷鍵時觸發(fā)查詢動作,提供篩選結(jié)果供用戶 選擇;
[0031] 優(yōu)選的,本裝置還可以包括索引創(chuàng)建模塊110,對數(shù)據(jù)庫表的數(shù)據(jù)按照名稱、編號 或者其他規(guī)律創(chuàng)建索引,使得用戶更快地找到目標(biāo)數(shù)據(jù)。
[0032] 驅(qū)動檢測模塊106中特定查詢語句具有通用性的特點(diǎn),當(dāng)接收到屬性關(guān)系對信息 時,只需將該屬性關(guān)系對中驅(qū)動屬性賦值在對應(yīng)的程序中,無需開發(fā)人員事先編寫固定的 程序代碼;在用戶新增數(shù)據(jù)或者變更數(shù)據(jù)時,不用更新本裝置,仍然能按照相應(yīng)的邏輯輸出 正確的數(shù)據(jù)結(jié)果。
[0033] 圖2示出了根據(jù)本發(fā)明的實(shí)施例的一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法的流程圖。
[0034] 如圖2所示,該方法包括以下步驟:
[0035] 步驟202,創(chuàng)建和定義數(shù)據(jù)庫表;
[0036] 定義數(shù)據(jù)庫表包括定義數(shù)據(jù)庫表屬性字段的邏輯關(guān)系和約束,例如,錄入控制、校 驗(yàn)等。
[0037] 步驟204,配置屬性關(guān)系對;
[0038] 根據(jù)數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性字段,根據(jù)用戶的需 求,結(jié)合表間的數(shù)據(jù)引用關(guān)系進(jìn)行配置。其中,屬性關(guān)系對由具有驅(qū)動性質(zhì)的屬性和被該屬 性驅(qū)動的屬性構(gòu)成。
[0039] 步驟206,驅(qū)動檢測;
[0040] 響應(yīng)用戶的操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的屬性關(guān)系 對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息,將屬性賦值至特定查 詢語句。
[0041] 步驟208,創(chuàng)建索引;
[0042] 對目標(biāo)屬性對應(yīng)的屬性值按照名稱、編號或者其他規(guī)律創(chuàng)建索引,該步驟為實(shí)現(xiàn) 本方法的優(yōu)化步驟,在缺少本步驟的情況下不影響本方法的實(shí)現(xiàn)。
[0043] 步驟210,事件解析。
[0044] 執(zhí)行特定查詢語句,驅(qū)動數(shù)據(jù)聯(lián)動變化,縮小用戶數(shù)據(jù)選擇范圍。
[0045] 圖2中的實(shí)施例為實(shí)現(xiàn)基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法的完整步驟,再次響應(yīng)用戶 的操作事件時,開始執(zhí)行步驟206。
[0046] 圖3示出了根據(jù)本發(fā)明的實(shí)施例的一對一屬性關(guān)聯(lián)處理的示意圖。
[0047] 如圖3所示,由于配置屬性關(guān)系對的信息,表Tl的屬性關(guān)聯(lián)事件驅(qū)動表T2的屬性 值聯(lián)動變化,表T2的屬性關(guān)聯(lián)事件驅(qū)動表T3的屬性值聯(lián)動變化。下面結(jié)合表1屬性關(guān)系 表1進(jìn)一步說明,其中,屬性關(guān)系對中帶的屬性為驅(qū)動性質(zhì)屬性,不帶為被驅(qū)動性 質(zhì)屬性。
[0048] 表Tl有屬性pl,Ptl,沒有屬性值引用某個數(shù)據(jù)源;表T2有關(guān)聯(lián)屬性關(guān)系對 (p2, pf )和屬性pl,p2,Pt2,其中pi的屬性值引用表Tl中屬性pi對應(yīng)的屬性值為數(shù)據(jù)源; 表T3有關(guān)聯(lián)屬性關(guān)系對(P3, p2#)和屬性p2, P3, Pt3,其中屬性p2的屬性值引用表T2中屬 性P2對應(yīng)的屬性值為數(shù)據(jù)源。如果用戶選擇或手動錄入涉及到表Tl里屬性pi的屬性值, 屬性Pl被賦值至查詢語句,接著執(zhí)行查詢語句,根據(jù)關(guān)聯(lián)關(guān)系屬性Pl驅(qū)動表T2中屬性p2 對應(yīng)的屬性值聯(lián)動變化;如果用戶選擇或手動錄入涉及到表T2里屬性p2的屬性值,屬性 P2被賦值至查詢語句,接著執(zhí)行查詢語句,則根據(jù)關(guān)聯(lián)關(guān)系屬性p2驅(qū)動表T3中p3的屬性 值聯(lián)動變化。
[0049] 表1屬性關(guān)系表1
[0050]
【權(quán)利要求】
1. 一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置,其特征在于,該裝置包括: 設(shè)置模塊,創(chuàng)建和定義數(shù)據(jù)庫表; 配置模塊,根據(jù)設(shè)置模塊數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性字段, 同時保存配置信息,包括數(shù)據(jù)庫表信息和屬性關(guān)系對; 驅(qū)動檢測模塊,響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的 屬性關(guān)系對,如果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息; 解析模塊,解析經(jīng)驅(qū)動檢測模塊處理的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。
2. 根據(jù)權(quán)利要求1所述的基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置,其特征在于,該裝置還包括 索引創(chuàng)建模塊,根據(jù)數(shù)據(jù)庫表中屬性值的特點(diǎn)創(chuàng)建索引。
3. 根據(jù)權(quán)利要求1所述的基于事件驅(qū)動的數(shù)據(jù)聯(lián)動裝置,其特征在于,所述屬性關(guān)系 對由具有驅(qū)動性質(zhì)的屬性和被該屬性驅(qū)動的屬性構(gòu)成。
4. 一種基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法,其特征在于,該方法包括: 創(chuàng)建和定義數(shù)據(jù)庫表; 根據(jù)數(shù)據(jù)庫表的屬性字段信息,配置有數(shù)據(jù)引用關(guān)系的屬性字段,同時保存配置信息, 包括數(shù)據(jù)庫表信息和屬性關(guān)系對; 響應(yīng)用戶操作事件,檢測事件關(guān)聯(lián)到的數(shù)據(jù)庫表的屬性是否有匹配的屬性關(guān)系對,女口 果沒有,則檢測結(jié)束;如果有,則獲取該屬性的屬性關(guān)系對信息; 解析處理后的用戶操作事件,獲取聯(lián)動的數(shù)據(jù)結(jié)果。
5. 根據(jù)權(quán)利要求4所述的基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法,其特征在于,該方法還包括 根據(jù)數(shù)據(jù)庫表中屬性值的特點(diǎn)創(chuàng)建索引。
6. 根據(jù)權(quán)利要求4所述的基于事件驅(qū)動的數(shù)據(jù)聯(lián)動方法,其特征在于,所述屬性關(guān)系 對由具有驅(qū)動性質(zhì)的屬性和被該屬性驅(qū)動的屬性構(gòu)成。
【文檔編號】G06F17/30GK104462107SQ201310424412
【公開日】2015年3月25日 申請日期:2013年9月17日 優(yōu)先權(quán)日:2013年9月17日
【發(fā)明者】牟春林 申請人:蘇州精易會信息技術(shù)有限公司