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