ERP有前臺(tái)也有后臺(tái),前臺(tái)有各種菜單,后臺(tái)有各種數(shù)據(jù)對(duì)象。
數(shù)據(jù)對(duì)象主要有:表,觸發(fā)器,存儲(chǔ)過(guò)程,函數(shù)和視圖。
表的數(shù)量基本跟ERP的菜單和功能的數(shù)量成正比,而其他數(shù)據(jù)對(duì)象各有各的功能。
下面將金蝶、用友、SAP的8款 ERP DEMO數(shù)據(jù)庫(kù),整理了一下,做了這張圖。
8款ERP分別是 SAP ECC6、金蝶云星空、用友U9C、用友U8、金蝶K3、金蝶KIS旗艦、用友T+、金蝶KIS商貿(mào)。
從上圖可以看出,SAP ECC6 表的數(shù)量高達(dá)6.8萬(wàn)張,跟其他完全不是一個(gè)數(shù)量級(jí),這個(gè)數(shù)字確實(shí)能說(shuō)明 SAP 的功能之多,另外我也在后臺(tái)統(tǒng)計(jì)了一下 SAP 的事務(wù)代碼,數(shù)量有超過(guò)73萬(wàn)個(gè)。
除SAP遙遙領(lǐng)先外,表的數(shù)量多少,依次分別是云星空>U9C>U8>K3> KIS旗艦版>T+>KIS商貿(mào)。
當(dāng)然不同的ERP,因?yàn)槭欠裰С?多組織,多賬簿,多語(yǔ)言 等先天架構(gòu)的不同,表的絕對(duì)數(shù)量多少不一定代表模塊和功能更多。
如果單組織的軟件,表數(shù)量和多組織的軟件表數(shù)量差不多或者接近,那往往說(shuō)明單組織的模塊和菜單會(huì)更多,比如 U8 和 U9C。
U8,K3 和KIS旗艦版 觸發(fā)器數(shù)量相當(dāng),SAP、云星空 ,U9C和T+ 則幾乎沒(méi)有觸發(fā)器。
這種情況是由于不同的ERP系統(tǒng)架構(gòu)和設(shè)計(jì)理念導(dǎo)致的。一些ERP系統(tǒng)可能更傾向于在數(shù)據(jù)庫(kù)層面使用觸發(fā)器來(lái)實(shí)現(xiàn)業(yè)務(wù)邏輯或者數(shù)據(jù)約束,因此會(huì)有較多的觸發(fā)器。而其他系統(tǒng)可能采用不同的技術(shù)(比如通過(guò)微服務(wù)在程序端處理)或者設(shè)計(jì)模式來(lái)實(shí)現(xiàn)相同的功能,因此觸發(fā)器的數(shù)量相對(duì)較少。
那么他們可以做觸發(fā)器嗎?答案是可以。 比如 T+ 或者云星空 ,如果希望內(nèi)外網(wǎng)訪(fǎng)問(wèn)時(shí),自動(dòng)適配不同的權(quán)限,可以通過(guò)增加觸發(fā)器來(lái)實(shí)現(xiàn)。
觸發(fā)器是數(shù)據(jù)庫(kù)管理系統(tǒng)中的一種特殊類(lèi)型的存儲(chǔ)過(guò)程,它們會(huì)在特定的數(shù)據(jù)庫(kù)事件發(fā)生時(shí)自動(dòng)執(zhí)行相應(yīng)的操作。觸發(fā)器通常用于實(shí)現(xiàn)以下功能:
1. 數(shù)據(jù)約束:觸發(fā)器可以用于在數(shù)據(jù)插入、更新或刪除時(shí)執(zhí)行一些額外的檢查或操作,以確保數(shù)據(jù)的完整性和一致性。例如,可以使用觸發(fā)器來(lái)檢查某些條件是否滿(mǎn)足,然后決定是否允許進(jìn)行數(shù)據(jù)的修改操作。
2. 數(shù)據(jù)審計(jì):觸發(fā)器可以用于記錄數(shù)據(jù)庫(kù)中的操作,例如在數(shù)據(jù)被修改時(shí)自動(dòng)記錄修改前后的數(shù)值或者記錄修改操作的時(shí)間和執(zhí)行者等信息,用于數(shù)據(jù)審計(jì)和追溯。
3. 業(yè)務(wù)邏輯實(shí)現(xiàn):觸發(fā)器可以用于執(zhí)行一些與業(yè)務(wù)邏輯相關(guān)的操作,例如在某個(gè)表的數(shù)據(jù)發(fā)生變化時(shí),自動(dòng)觸發(fā)其他相關(guān)表的更新或者通知其他系統(tǒng)進(jìn)行相關(guān)操作。
4. 數(shù)據(jù)復(fù)制和同步:在一些數(shù)據(jù)庫(kù)復(fù)制和同步的場(chǎng)景中,觸發(fā)器可以用于在一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)生變化時(shí),自動(dòng)觸發(fā)另一個(gè)數(shù)據(jù)庫(kù)的相應(yīng)操作,以實(shí)現(xiàn)數(shù)據(jù)的同步和復(fù)制。
總之,觸發(fā)器在數(shù)據(jù)庫(kù)管理系統(tǒng)中扮演著重要的角色,能夠幫助實(shí)現(xiàn)數(shù)據(jù)約束、數(shù)據(jù)審計(jì)、業(yè)務(wù)邏輯實(shí)現(xiàn)以及數(shù)據(jù)復(fù)制和同步等功能。
其中數(shù)據(jù)約束比如,可以實(shí)現(xiàn)缺料不允許下達(dá)任務(wù)單,銷(xiāo)售訂單不同的利潤(rùn)系數(shù)控制需要由不同的人員去審核,數(shù)量和單價(jià)不允許改大等等,凡是能夠定出邏輯,取到數(shù)據(jù)的,通過(guò)觸發(fā)器都能實(shí)現(xiàn)控制。
數(shù)據(jù)審計(jì),比如 K3 標(biāo)準(zhǔn)功能是沒(méi)有BOM的修改記錄的,但是通過(guò)觸發(fā)器可以實(shí)現(xiàn)改前改后的數(shù)據(jù)完整記錄,然后通過(guò)報(bào)表來(lái)顯示變更的記錄。
業(yè)務(wù)邏輯實(shí)現(xiàn),比如自定義開(kāi)發(fā)的單據(jù),審核時(shí)自動(dòng)更新其它的基礎(chǔ)資料(模具出入庫(kù)審核后,更新模具檔案的狀態(tài)和地址等)。
數(shù)據(jù)的復(fù)制和同步,這個(gè)在不同的系統(tǒng)中進(jìn)行集成或者相同系統(tǒng)不同賬套之間數(shù)據(jù)拋轉(zhuǎn)會(huì)經(jīng)常用到。
下面我們來(lái)看 存儲(chǔ)過(guò)程:
從上圖可以看出,U8,U9C 大量用了存儲(chǔ)過(guò)程,分別達(dá)到了4500和2600個(gè),所以后臺(tái)跟蹤這兩個(gè)系統(tǒng)的邏輯時(shí),經(jīng)常會(huì)遇到 存儲(chǔ)過(guò)程層層嵌套 ,邏輯會(huì)比較復(fù)雜。
K3 和KIS旗艦版 存儲(chǔ)過(guò)程1000多,相對(duì)比較少,因?yàn)橥ǔR粋€(gè) 事務(wù) 一個(gè)存儲(chǔ)過(guò)程搞定,跟蹤起來(lái) 邏輯比較容易 理順一些。
存儲(chǔ)過(guò)程是一組預(yù)編譯的SQL語(yǔ)句和邏輯操作,可以在數(shù)據(jù)庫(kù)中保存并重復(fù)使用。存儲(chǔ)過(guò)程的作用包括:
1. 提高性能:存儲(chǔ)過(guò)程可以在數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行,減少了網(wǎng)絡(luò)傳輸和服務(wù)器端的解釋和執(zhí)行時(shí)間,從而提高了性能。
2. 簡(jiǎn)化復(fù)雜操作:存儲(chǔ)過(guò)程可以包含復(fù)雜的業(yè)務(wù)邏輯和數(shù)據(jù)操作,可以簡(jiǎn)化客戶(hù)端應(yīng)用程序的代碼和邏輯。
3. 維護(hù)數(shù)據(jù)完整性:存儲(chǔ)過(guò)程可以用于實(shí)現(xiàn)數(shù)據(jù)的驗(yàn)證和完整性約束,確保數(shù)據(jù)的一致性和正確性。
4. 安全性控制:存儲(chǔ)過(guò)程可以對(duì)數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)進(jìn)行控制和限制,提高了數(shù)據(jù)的安全性。
5. 重用性:存儲(chǔ)過(guò)程可以在多個(gè)應(yīng)用程序中重復(fù)使用,提高了代碼的重用性和可維護(hù)性。
6. 事務(wù)管理:存儲(chǔ)過(guò)程可以包含事務(wù)管理的邏輯,確保數(shù)據(jù)庫(kù)操作的原子性、一致性和隔離性。
總之,存儲(chǔ)過(guò)程可以提高數(shù)據(jù)庫(kù)操作的效率、簡(jiǎn)化業(yè)務(wù)邏輯、提高數(shù)據(jù)安全性,是數(shù)據(jù)庫(kù)開(kāi)發(fā)中非常重要的一部分。
我本人就經(jīng)常用存儲(chǔ)過(guò)程來(lái)寫(xiě)報(bào)表和實(shí)現(xiàn)一些比較復(fù)雜的邏輯,當(dāng)然存儲(chǔ)過(guò)程也可以跟觸發(fā)器聯(lián)合使用,來(lái)實(shí)時(shí)實(shí)現(xiàn)某些功能,或者跟數(shù)據(jù)庫(kù)job聯(lián)用,來(lái)實(shí)現(xiàn)定時(shí)執(zhí)行某些功能。
除了U8和U9用了200多的函數(shù),其余都很少用函數(shù),為什么?
我想主要是因?yàn)楹瘮?shù)只有一個(gè)返回值,如果大批量執(zhí)行時(shí),性能比較差,所以通常能用存儲(chǔ)過(guò)程來(lái)實(shí)現(xiàn)的,就不會(huì)去用函數(shù)。
函數(shù)是一段可重復(fù)使用的代碼,用于執(zhí)行特定的任務(wù)并返回一個(gè)值。在數(shù)據(jù)庫(kù)中,函數(shù)通常用于執(zhí)行特定的計(jì)算、數(shù)據(jù)轉(zhuǎn)換或邏輯操作。函數(shù)的作用包括:
1. 數(shù)據(jù)處理:函數(shù)可以用于執(zhí)行各種數(shù)據(jù)處理操作,例如數(shù)學(xué)計(jì)算、字符串處理、日期處理等。
2. 邏輯判斷:函數(shù)可以包含邏輯判斷的操作,根據(jù)輸入?yún)?shù)的不同返回不同的結(jié)果。
3. 數(shù)據(jù)轉(zhuǎn)換:函數(shù)可以用于執(zhí)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換或格式化,將數(shù)據(jù)轉(zhuǎn)換成特定的格式或類(lèi)型。
4. 重用性:函數(shù)可以在不同的查詢(xún)或程序中重復(fù)使用,提高了代碼的重用性和可維護(hù)性。
5. 簡(jiǎn)化復(fù)雜操作:通過(guò)函數(shù),可以將復(fù)雜的邏輯和計(jì)算封裝起來(lái),簡(jiǎn)化了用戶(hù)或應(yīng)用程序的操作。
6. 提高性能:函數(shù)可以在數(shù)據(jù)庫(kù)服務(wù)器端執(zhí)行,減少了數(shù)據(jù)傳輸和服務(wù)器端解釋執(zhí)行的時(shí)間,從而提高了性能。
總之,函數(shù)是數(shù)據(jù)庫(kù)中非常重要的一部分,它可以用于執(zhí)行各種數(shù)據(jù)處理、邏輯判斷和數(shù)據(jù)轉(zhuǎn)換操作,提高了代碼的重用性和可維護(hù)性。
我用函數(shù)常見(jiàn)的場(chǎng)景是 單個(gè)物料可用庫(kù)存計(jì)算,助記碼生成,字符串拼接和拆分等等。
SAP 和U8 都大量使用了視圖,數(shù)量分別達(dá)到9000多和4000多,云星空,K3 和KIS旗艦版 都是幾百個(gè)。
U8 之所以這么多視圖,是因?yàn)橛泻芏嗟那短?,?jīng)常一個(gè)視圖套著另外好幾個(gè)視圖,比如表頭和表體分別做了視圖,然后合起來(lái)又做了一個(gè)或多個(gè)視圖。
視圖是數(shù)據(jù)庫(kù)中的虛擬表,它是基于一個(gè)或多個(gè)實(shí)際表的查詢(xún)結(jié)果集。視圖的作用包括:
1. 數(shù)據(jù)安全性:視圖可以隱藏底層表的細(xì)節(jié),只暴露給用戶(hù)或應(yīng)用程序需要的數(shù)據(jù),從而提高了數(shù)據(jù)的安全性。
2. 簡(jiǎn)化復(fù)雜查詢(xún):通過(guò)視圖,可以將復(fù)雜的查詢(xún)邏輯封裝在視圖中,簡(jiǎn)化了用戶(hù)或應(yīng)用程序?qū)?shù)據(jù)的訪(fǎng)問(wèn)和操作。
3. 數(shù)據(jù)獨(dú)立性:視圖可以提供邏輯上的數(shù)據(jù)獨(dú)立性,當(dāng)?shù)讓颖斫Y(jié)構(gòu)發(fā)生變化時(shí),只需修改視圖而不影響用戶(hù)或應(yīng)用程序的訪(fǎng)問(wèn)。
4. 重用性:視圖可以被多個(gè)用戶(hù)或應(yīng)用程序共享和重復(fù)使用,提高了代碼的重用性和可維護(hù)性。
5. 簡(jiǎn)化權(quán)限管理:通過(guò)視圖,可以對(duì)用戶(hù)或應(yīng)用程序的訪(fǎng)問(wèn)權(quán)限進(jìn)行更精細(xì)的控制,從而簡(jiǎn)化了權(quán)限管理的工作。
總之,視圖是數(shù)據(jù)庫(kù)中非常重要的一部分,它可以提高數(shù)據(jù)的安全性、簡(jiǎn)化查詢(xún)操作、提高數(shù)據(jù)獨(dú)立性和重用性,是數(shù)據(jù)庫(kù)開(kāi)發(fā)中常用的技術(shù)手段。
比如K3的物料會(huì)有很多不同的頁(yè)簽,每個(gè)頁(yè)簽都在不同的表里,然后會(huì)有一個(gè)總的物料視圖,把各種表聯(lián)合起來(lái),這樣查詢(xún)時(shí)直接查詢(xún)物料視圖t_icitem即可,會(huì)比較方便,不需要每次都去10多個(gè)表里分別查詢(xún)。
總結(jié):其實(shí)ERP的各種數(shù)據(jù)對(duì)象、函數(shù)、觸發(fā)器和存儲(chǔ)過(guò)程,如果用得好,各種ERP都還有大量的深入應(yīng)用空間,可以通過(guò)它們把各級(jí)管理人才的經(jīng)驗(yàn)與系統(tǒng)結(jié)合,優(yōu)化流程,提高效率,減少浪費(fèi) 。
點(diǎn)晴模切ERP更多信息:http://moqie.clicksun.cn,聯(lián)系電話(huà):4001861886
該文章在 2024/6/27 9:46:50 編輯過(guò)