国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

PB通用類(lèi)庫(kù)和業(yè)務(wù)類(lèi)庫(kù)的設(shè)計(jì)思想(一)

2024-07-21 02:10:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友


通用類(lèi)庫(kù)和業(yè)務(wù)類(lèi)庫(kù)的設(shè)計(jì)思想

   在我們利用pb進(jìn)行mis系統(tǒng)開(kāi)發(fā)時(shí),有很多業(yè)務(wù)是通用的,并且有很多組件是可以復(fù)用的。為了提高mis系統(tǒng)的開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期,有必要把一些公用對(duì)象抽象出來(lái),以便作二次開(kāi)發(fā)。
   這些通用的對(duì)象,一部分是針對(duì)基本功能進(jìn)行擴(kuò)充的,我叫它通用類(lèi)庫(kù),采用加ufc_前綴的方式命名, 一部分是針對(duì)業(yè)務(wù)功能進(jìn)行擴(kuò)充的,采用加wfc_前綴的方式命名。
   以下先從整體上描述整個(gè)類(lèi)庫(kù)的框架, 然后在從具體的類(lèi)庫(kù)來(lái)描述各個(gè)模塊。

一、數(shù)據(jù)庫(kù)框架
    我們假定現(xiàn)在有兩個(gè)mis系統(tǒng)需要開(kāi)發(fā),分別是"應(yīng)用系統(tǒng)1"和"應(yīng)用系統(tǒng)2",其中應(yīng)用系統(tǒng)1中有兩年的數(shù)據(jù),分別是年份1和年份2。為了實(shí)現(xiàn)系統(tǒng)功能的同一管理和代碼在最大可能的重用,我們?cè)O(shè)計(jì)了整個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)框架:


    如上圖,我們分別對(duì)應(yīng)用系統(tǒng)1的年份1和年份2以及應(yīng)用系統(tǒng)2分別建立三個(gè)數(shù)據(jù)庫(kù): a1、a2和b。如果還有更多的應(yīng)用系統(tǒng)的話,我們都可以建立更多的數(shù)據(jù)庫(kù)與之對(duì)應(yīng)。
    這里,為什么應(yīng)用系統(tǒng)1中年份1和年份2要建立兩個(gè)數(shù)據(jù)庫(kù)呢?由于很多mis系統(tǒng)中,每自然年或者邏輯年后,系統(tǒng)的數(shù)據(jù)庫(kù)都需要進(jìn)行備份和封存,上一年的數(shù)據(jù)庫(kù)一般就不允許再進(jìn)行修改操作。這樣,我們可以建立一個(gè)新的數(shù)據(jù)庫(kù)來(lái)存放新一年的數(shù)據(jù),應(yīng)用軟件可以在不進(jìn)行任何修改的情況下實(shí)現(xiàn)多年數(shù)據(jù)的管理,并且能保證數(shù)據(jù)量不會(huì)過(guò)分膨脹。
    把應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)按年份來(lái)管理后,就產(chǎn)生了權(quán)限管理、數(shù)據(jù)庫(kù)連接、數(shù)據(jù)庫(kù)結(jié)轉(zhuǎn)等問(wèn)題,為了實(shí)現(xiàn)系統(tǒng)權(quán)限、用戶(hù)等的統(tǒng)一管理,我們不在每一個(gè)具體的和業(yè)務(wù)有關(guān)的數(shù)據(jù)庫(kù)中建立相關(guān)的表,而是再建立一個(gè)系統(tǒng)數(shù)據(jù)庫(kù)s,通過(guò)它來(lái)對(duì)應(yīng)用系統(tǒng)數(shù)據(jù)庫(kù)進(jìn)行連接和管理。在這個(gè)數(shù)據(jù)庫(kù)中,一般包括以下表:系統(tǒng)用戶(hù)表(user)系統(tǒng)角色表(role),系統(tǒng)權(quán)力表(power),角色模塊權(quán)力表(rolerpower),用戶(hù)模塊權(quán)力表(userrpower),用戶(hù)角色表(userrrole),系統(tǒng)模塊表(module),系統(tǒng)對(duì)象表(object),模塊對(duì)象表(modulerobject)等權(quán)限管理表,為了實(shí)現(xiàn)其它一些通用的系統(tǒng)管理功能,還有一些通用的表,主要是:系統(tǒng)參數(shù)表(sysparm),系統(tǒng)字典表(systypeinfo),系統(tǒng)序列號(hào)表(syssequence),表屬性表(systable),
列屬性表(syscolumn),系統(tǒng)消息表(sysmsg) ,歷史表(histbl),事件日志表(eventlog),書(shū)簽表(bookmark),系統(tǒng)程序表(program),帳套表(accountset)等等。
    數(shù)據(jù)庫(kù)這樣一改造后,權(quán)限管理分成了兩部分,數(shù)據(jù)庫(kù)權(quán)限管理和應(yīng)用系統(tǒng)權(quán)限管理, 數(shù)據(jù)庫(kù)權(quán)限管理通過(guò)數(shù)據(jù)庫(kù)管理系統(tǒng)本身提供的功能來(lái)設(shè)置,應(yīng)用系統(tǒng)權(quán)限通過(guò)應(yīng)用程序來(lái)設(shè)置, 同時(shí)我們的應(yīng)用程序也要改造了, 應(yīng)用系統(tǒng)首先連接系統(tǒng)數(shù)據(jù)庫(kù)s, 根據(jù)其連接的身份決定是否進(jìn)行數(shù)據(jù)庫(kù)管理(創(chuàng)建和維護(hù)帳套以及備份數(shù)據(jù)庫(kù)等)還是連接業(yè)務(wù)系統(tǒng),如果連接用戶(hù)是系統(tǒng)數(shù)據(jù)庫(kù)s的管理員,則打開(kāi)數(shù)據(jù)庫(kù)管理界面。 如果只是系統(tǒng)數(shù)據(jù)庫(kù)s的普通操作員,則從s的帳套表中讀出帳套信息,顯示業(yè)務(wù)系統(tǒng)登錄對(duì)話框,根據(jù)輸入的業(yè)務(wù)系統(tǒng)連接身份以及選擇的帳套,連接業(yè)務(wù)數(shù)據(jù)庫(kù)a1或a2,連接成功后,根據(jù)其在業(yè)務(wù)系統(tǒng)中定義的權(quán)限(userright表)來(lái)決定其下一步的方向, 是打開(kāi)業(yè)務(wù)系統(tǒng)管理界面,還是業(yè)務(wù)系統(tǒng)操作界面。 我們看看改造后的系統(tǒng)登錄流程:

   數(shù)據(jù)庫(kù)這樣改造后,系統(tǒng)的安全性獲得了極大的提高,對(duì)于數(shù)據(jù)庫(kù)管理員有至高無(wú)上的權(quán)力,它可以創(chuàng)建系統(tǒng)數(shù)據(jù)庫(kù)s的連接用戶(hù),賦予其普通的數(shù)據(jù)庫(kù)連接權(quán)限和對(duì)帳套表的select權(quán)限, 它連接上系統(tǒng)數(shù)據(jù)庫(kù)s后,可以創(chuàng)建帳套(即業(yè)務(wù)數(shù)據(jù)庫(kù)),設(shè)置其數(shù)據(jù)庫(kù)連接參數(shù):用戶(hù)名和密碼等, 這些連接參數(shù)可以不必透露給業(yè)務(wù)系統(tǒng)管理員,而只需把在系統(tǒng)數(shù)據(jù)庫(kù)s上創(chuàng)建的普通連接賬號(hào)告訴業(yè)務(wù)系統(tǒng)用戶(hù)就行了。 業(yè)務(wù)系統(tǒng)用戶(hù)利用此賬號(hào)來(lái)連接系統(tǒng)數(shù)據(jù)庫(kù)s,然后從帳套表中取出所有的有效帳套,彈出業(yè)務(wù)系統(tǒng)登錄對(duì)話框, 選擇一個(gè)帳套以及業(yè)務(wù)系統(tǒng)的登錄用戶(hù)名與密碼,進(jìn)行登錄,系統(tǒng)首先必須根據(jù)帳套獲取此帳套實(shí)際連接的數(shù)據(jù)庫(kù)以及登錄的用戶(hù)名與密碼,假如我們是選擇了a2, 利用表中設(shè)置的用戶(hù)名和密碼(當(dāng)然是加過(guò)密的嘍),連接a2數(shù)據(jù)庫(kù),然后從系統(tǒng)用戶(hù)表(user)中檢驗(yàn)其系統(tǒng)用戶(hù)身份,通過(guò)后,才能登錄到系統(tǒng)中。 這樣,系統(tǒng)就建立了對(duì)兩個(gè)數(shù)據(jù)庫(kù)的連接。

   除此之外,如果考慮到業(yè)務(wù)系統(tǒng)的本地化、個(gè)性化,在c/s構(gòu)架下,我們可以再在每個(gè)業(yè)務(wù)系統(tǒng)的本地自動(dòng)創(chuàng)建一個(gè)文件型數(shù)據(jù)庫(kù),一般可以采用access和sqlanywhere來(lái)實(shí)現(xiàn),也可以采用自己的格式來(lái)定義。在其中可以創(chuàng)建一些通用表:個(gè)性化表(preference),方案表(scheme),語(yǔ)言表(language)等。
 
   這樣構(gòu)架后, 一個(gè)mis系統(tǒng)的數(shù)據(jù)就由三個(gè)數(shù)據(jù)庫(kù)組成, 系統(tǒng)中必須保持對(duì)這三個(gè)數(shù)據(jù)庫(kù)的連接, 在pb中,我采用了三個(gè)事務(wù)連接來(lái)管理,分別為:sqlsys, sqlcom , sqlloc。

   接下來(lái),將在這個(gè)數(shù)據(jù)庫(kù)架構(gòu)下,進(jìn)行通用類(lèi)庫(kù)搭建。

(待續(xù))

 
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 运城市| 康定县| 嘉禾县| 图们市| 林州市| 宽城| 英超| 美姑县| 寻乌县| 峨眉山市| 南通市| 仙游县| 南开区| 内黄县| 诸城市| 黄冈市| 屯留县| 洪泽县| 望谟县| 崇明县| 迁安市| 米脂县| 万载县| 北川| 南澳县| 东辽县| 河曲县| 磐石市| 和平县| 广平县| 应城市| 垫江县| 江口县| 台中市| 平凉市| 老河口市| 宿迁市| 林周县| 通辽市| 永泰县| 隆昌县|