090]所述的類創(chuàng)建單元,用于根據(jù)所述題目實體,創(chuàng)建兩大子類,分別為原子題型和復(fù)合題型,所述復(fù)合題型為包含原子題型的集合;
[0091]所述的第二實體創(chuàng)建單元,用于根據(jù)每一原子題型的答題記錄,創(chuàng)建答題結(jié)果實體;所述答題結(jié)果實體和相應(yīng)的題目實體通過題目ID值對象和題目類型值對象進行關(guān)聯(lián)。
[0092]本發(fā)明實施例中,所述基于領(lǐng)域驅(qū)動設(shè)計的題庫建模系統(tǒng)還包括:
[0093]Item創(chuàng)建模塊,用于分別為所述題目實體和套題實體增加一條item,并通過題目ID值對象建立所述題目實體或套題實體與對應(yīng)的item的關(guān)聯(lián)關(guān)系。
[0094]本發(fā)明實施例中,所述基于領(lǐng)域驅(qū)動設(shè)計的題庫建模系統(tǒng)還包括封裝模塊和統(tǒng)計模塊,其中:
[0095]所述的封裝模塊,用于當答題提交后,采用發(fā)布領(lǐng)域事件對答題記錄進行封裝,并將該事件提交給所述基礎(chǔ)設(shè)施層的消息總線;
[0096]所述的統(tǒng)計模塊,用于從消息總線中提取所述事件,根據(jù)事件提取結(jié)果,統(tǒng)計并更新當前的答題統(tǒng)計信息。
[0097]本發(fā)明實施例,針對題庫系統(tǒng)核心領(lǐng)域?qū)拥念I(lǐng)域模型建模,并通過根據(jù)領(lǐng)域模型的數(shù)據(jù)特征,依據(jù)預(yù)設(shè)策略確定相應(yīng)的基礎(chǔ)設(shè)施層的存儲數(shù)據(jù)庫,將不同類型的存儲數(shù)據(jù)存儲在對應(yīng)的存儲數(shù)據(jù)庫,實現(xiàn)基礎(chǔ)設(shè)施層的構(gòu)建,進而實現(xiàn)領(lǐng)域模型的高效持久化。
[0098]綜上所述,本發(fā)明實施例提供的基于領(lǐng)域驅(qū)動設(shè)計的題庫建模方法及系統(tǒng),采用領(lǐng)域建模構(gòu)建可重用、健壯的題庫建模架構(gòu),題型的變化不會改變原有核心業(yè)務(wù)代碼;最大限度利用各類數(shù)據(jù)庫的特點和合理的適用場景,實現(xiàn)各類數(shù)據(jù)的有效、高效存儲,降低了一味采用關(guān)系數(shù)據(jù)庫產(chǎn)生的關(guān)系對象阻抗對系統(tǒng)實現(xiàn)的難度;通過領(lǐng)域事件,實現(xiàn)統(tǒng)計等操作的事件模型建模和異步消息處理機制,簡化了系統(tǒng)設(shè)計架構(gòu),提高了系統(tǒng)分布的可擴展性。
[0099]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
[0100]本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
[0101]本領(lǐng)域技術(shù)人員可以理解實施例中的系統(tǒng)中的模塊可以按照實施例描述進行分布于實施例的系統(tǒng)中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個系統(tǒng)中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。
[0102]以上所述僅是本發(fā)明的部分實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。
【主權(quán)項】
1.一種基于領(lǐng)域驅(qū)動設(shè)計的題庫建模方法,其特征在于,所述方法包括: 采用領(lǐng)域驅(qū)動技術(shù)將題庫系統(tǒng)進行架構(gòu)劃分,得到領(lǐng)域?qū)印?yīng)用層和基礎(chǔ)設(shè)施層;采用領(lǐng)域?qū)咏9ぞ吒鶕?jù)題庫系統(tǒng)中的題目、課程以及答題記錄對所述領(lǐng)域?qū)舆M行領(lǐng)域建模,得到領(lǐng)域模型; 根據(jù)所述領(lǐng)域模型的數(shù)據(jù)特征,依據(jù)預(yù)設(shè)策略確定相應(yīng)的基礎(chǔ)設(shè)施層的存儲數(shù)據(jù)庫; 根據(jù)基礎(chǔ)設(shè)施層中存儲數(shù)據(jù)的類型,將不同類型的存儲數(shù)據(jù)存儲在對應(yīng)的存儲數(shù)據(jù)庫中。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采用領(lǐng)域?qū)咏9ぞ吒鶕?jù)題庫系統(tǒng)中的題目、課程以及答題記錄對所述領(lǐng)域?qū)舆M行領(lǐng)域建模,包括: 為每一課程創(chuàng)建多個題目實體和至少一個套題實體,所述題目實體和每一套題實體通過題目ID值對象進行關(guān)聯(lián); 根據(jù)所述題目實體,創(chuàng)建兩大子類,分別為原子題型和復(fù)合題型,所述復(fù)合題型為包含原子題型的集合; 根據(jù)每一原子題型的答題記錄,創(chuàng)建答題結(jié)果實體; 將所述答題結(jié)果實體和相應(yīng)的題目實體通過題目ID值對象和題目類型值對象進行關(guān)耳關(guān)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述方法還包括: 分別為所述題目實體和套題實體增加一條item,并通過題目ID值對象建立所述題目實體或套題實體與對應(yīng)的item的關(guān)聯(lián)關(guān)系。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,當答題提交后,所述方法還包括: 采用發(fā)布領(lǐng)域事件對答題記錄進行封裝,并將該事件提交給所述基礎(chǔ)設(shè)施層的消息總線; 從消息總線中提取所述事件,根據(jù)事件提取結(jié)果,統(tǒng)計并更新當前的答題統(tǒng)計信息。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)基礎(chǔ)設(shè)施層中存儲數(shù)據(jù)的類型,將不同類型的存儲數(shù)據(jù)存儲在對應(yīng)的存儲數(shù)據(jù)庫中,包括: 將題目和套題數(shù)據(jù)采用文檔型數(shù)據(jù)庫MongoDB進行存儲; 將題目分類Category的樹形結(jié)構(gòu),采用目錄數(shù)據(jù)庫LDAP進行存儲; 將答題統(tǒng)計信息,采用關(guān)系數(shù)據(jù)庫MySQL進行存儲,并采用Redis數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)的讀取緩存。6.一種基于領(lǐng)域驅(qū)動設(shè)計的題庫建模系統(tǒng),其特征在于,所述系統(tǒng)包括: 架構(gòu)劃分模塊,用于采用領(lǐng)域驅(qū)動技術(shù)將題庫系統(tǒng)進行架構(gòu)劃分,得到領(lǐng)域?qū)印?yīng)用層和基礎(chǔ)設(shè)施層; 領(lǐng)域建模模塊,用于采用領(lǐng)域?qū)咏9ぞ吒鶕?jù)題庫系統(tǒng)中的題目、課程以及答題記錄對所述領(lǐng)域?qū)舆M行領(lǐng)域建模,得到領(lǐng)域模型; 數(shù)據(jù)庫確定模塊,用于根據(jù)所述領(lǐng)域模型的數(shù)據(jù)特征,依據(jù)預(yù)設(shè)策略確定相應(yīng)的基礎(chǔ)設(shè)施層的存儲數(shù)據(jù)庫; 數(shù)據(jù)存儲模塊,用于根據(jù)基礎(chǔ)設(shè)施層中存儲數(shù)據(jù)的類型,將不同類型的存儲數(shù)據(jù)存儲在對應(yīng)的存儲數(shù)據(jù)庫中。7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述領(lǐng)域建模模塊,包括: 第一實體創(chuàng)建單元,用于為每一課程創(chuàng)建多個題目實體和至少一個套題實體,所述題目實體和每一套題實體通過題目ID值對象進行關(guān)聯(lián); 類創(chuàng)建單元,用于根據(jù)所述題目實體,創(chuàng)建兩大子類,分別為原子題型和復(fù)合題型,所述復(fù)合題型為包含原子題型的集合; 第二實體創(chuàng)建單元,用于根據(jù)每一原子題型的答題記錄,創(chuàng)建答題結(jié)果實體;所述答題結(jié)果實體和相應(yīng)的題目實體通過題目ID值對象和題目類型值對象進行關(guān)聯(lián)。8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: Item創(chuàng)建模塊,用于分別為所述題目實體和套題實體增加一條item,并通過題目ID值對象建立所述題目實體或套題實體與對應(yīng)的item的關(guān)聯(lián)關(guān)系。9.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 封裝模塊,用于當答題提交后,采用發(fā)布領(lǐng)域事件對答題記錄進行封裝,并將該事件提交給所述基礎(chǔ)設(shè)施層的消息總線; 統(tǒng)計模塊,用于從消息總線中提取所述事件,根據(jù)事件提取結(jié)果,統(tǒng)計并更新當前的答題統(tǒng)計信息。10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述數(shù)據(jù)存儲模塊,具體用于將題目和套題數(shù)據(jù)采用文檔型數(shù)據(jù)庫MongoDB進行存儲;將題目分類Category的樹形結(jié)構(gòu),采用目錄數(shù)據(jù)庫LDAP進行存儲;將答題統(tǒng)計信息,采用關(guān)系數(shù)據(jù)庫MySQL進行存儲,并采用Redis數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)的讀取緩存。
【專利摘要】本發(fā)明提供了一種基于領(lǐng)域驅(qū)動設(shè)計的題庫建模方法及系統(tǒng),該方法包括:采用領(lǐng)域驅(qū)動技術(shù)將題庫系統(tǒng)進行架構(gòu)劃分,得到領(lǐng)域?qū)?、?yīng)用層和基礎(chǔ)設(shè)施層;采用領(lǐng)域?qū)咏9ぞ吒鶕?jù)題庫系統(tǒng)中的題目、課程以及答題記錄對所述領(lǐng)域?qū)舆M行領(lǐng)域建模,得到領(lǐng)域模型;根據(jù)所述領(lǐng)域模型的數(shù)據(jù)特征,依據(jù)預(yù)設(shè)策略確定相應(yīng)的基礎(chǔ)設(shè)施層的存儲數(shù)據(jù)庫;根據(jù)基礎(chǔ)設(shè)施層中存儲數(shù)據(jù)的類型,將不同類型的存儲數(shù)據(jù)存儲在對應(yīng)的存儲數(shù)據(jù)庫中。本發(fā)明能夠構(gòu)建可重用、健壯的題庫建模架構(gòu),最大限度利用各類數(shù)據(jù)庫的特點和合理的適用場景,實現(xiàn)各類數(shù)據(jù)的有效、高效存儲,簡化系統(tǒng)設(shè)計架構(gòu),提高系統(tǒng)分布的可擴展性。
【IPC分類】G06F17/30
【公開號】CN105183817
【申請?zhí)枴緾N201510536595
【發(fā)明人】唐聰, 宋文略, 許軼, 肖迪
【申請人】北京時代焦點國際教育咨詢有限責任公司
【公開日】2015年12月23日
【申請日】2015年8月27日