完整的接口解決具體實(shí)施方案說明書_第1頁
完整的接口解決具體實(shí)施方案說明書_第2頁
完整的接口解決具體實(shí)施方案說明書_第3頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、文檔編號(hào)T-JKJS文檔版本0.01項(xiàng)目編號(hào):XX-DX- PECSXX電信工程外部協(xié)作系統(tǒng)Project Exterior Cooperati onSystem施工單位接口技術(shù)解決方案編寫人:南瘋?cè)掌冢?006-10-30審核人:日期:批準(zhǔn)人:日期:XXXXX)信息科技股份有限公司地址-XXXXXXX由E編:XXXXXX電話XXXXXXXX傳真:XXXXXX網(wǎng)站XXXXXXXXX修改記錄(Revision Chart )版本號(hào)批準(zhǔn)人修改人1修改0.01南瘋2006-10-300.02詳細(xì)修改記錄:序號(hào)1引言1.2編寫目地覆蓋范圍1.6預(yù)期讀者與閱讀建議 文檔約定術(shù)語與縮略語

2、參考文獻(xiàn)234567823456784.2 數(shù)據(jù)安全事務(wù)處理性能考慮容錯(cuò)處理數(shù)據(jù)格式8.1 約定8.2 施工系統(tǒng)向外協(xié)系統(tǒng)發(fā)送請求8.2.1 請求查詢一個(gè)業(yè)務(wù)數(shù)據(jù)8.2.2 新增一條記錄,得到記錄地鍵值8.2.3 修改一條記錄8.2.4 刪除一條記錄8.2.5 文檔上傳8.2.6 一條記錄中一個(gè)文檔字段上傳多個(gè)文件8.2.7 補(bǔ)充上傳文檔8.2.8 在記錄中刪除一個(gè)文檔8.2.9 獲得文檔地基本信息8.2.10 獲得文檔地所有兄弟信息8.2.11 獲得文檔地所有父親信息8.2.12 下載一個(gè)文檔8.2.13 獲得字典8.3 外協(xié)系統(tǒng)向施工系統(tǒng)發(fā)送請求發(fā)送變更后地?cái)?shù)據(jù)發(fā)送變更后地字典文檔發(fā)送請求

3、信息數(shù)據(jù)項(xiàng)9.1 數(shù)據(jù)表9.2 字段信息9.3 字典類型網(wǎng)頁地址11 Web Service 接口11.1接口命名規(guī)范11.2輸入?yún)?shù)11.3輸出參數(shù)11.4外協(xié)系統(tǒng)提供地其他接口12附錄:待定問題1引言1.1編寫目地本文檔為XX電信工程外部協(xié)作系統(tǒng)(以下簡稱外協(xié)系統(tǒng))與電信工程施工單位內(nèi)部系統(tǒng)(以下簡稱施工系統(tǒng))接口技術(shù)解決方案,以此作為外協(xié)系統(tǒng)與施工系統(tǒng)實(shí)施接口地技術(shù)方案依據(jù)和項(xiàng) 目設(shè)計(jì)標(biāo)準(zhǔn).b5E2RGbCAP1.2覆蓋范圍XX電信工程外部協(xié)作系統(tǒng)項(xiàng)目組施工系統(tǒng)接口開發(fā)技術(shù)組1.3預(yù)期讀者與閱讀建議XX電信企業(yè)信息化部XX 電信工程建設(shè)部XXXX公司開發(fā)人員施工系統(tǒng)開發(fā)人員1.4文檔約定

4、粗體正文表示強(qiáng)調(diào)內(nèi)容紅色正文表示未完成或需要今后考慮地內(nèi)容藍(lán)色正文表示待討論內(nèi)容1.5術(shù)語與縮略語術(shù)語、縮略語定義外協(xié)系統(tǒng)XX電信工程外部協(xié)作系統(tǒng)|施工系統(tǒng)電信工程施工單位內(nèi)部系統(tǒng)PECSXX電信工程外部協(xié)作糸統(tǒng)英文簡稱1.6參考文獻(xiàn)(XXXX)2概述建設(shè)XX電信工程外部協(xié)作系統(tǒng)地目標(biāo), 是在工程項(xiàng)目地管理、建設(shè)、使用和實(shí)施單位之間搭 建起數(shù)據(jù)交換和協(xié)同工作地信息平臺(tái),延伸與拓展工程建設(shè)管理信息化地應(yīng)用范圍,實(shí)現(xiàn)通信工程建設(shè)過程地信息化管理, 促進(jìn)工程項(xiàng)目地管理部門、 建設(shè)部門、實(shí)施部門和使用部門之間業(yè)務(wù) 流程協(xié)調(diào)有序地開展,實(shí)現(xiàn)工程項(xiàng)目設(shè)計(jì)、施工、監(jiān)理管理功能,將相關(guān)地設(shè)計(jì)、施工、監(jiān)理單 位

5、納入到工程建設(shè)管理中, 完善工程項(xiàng)目建設(shè)過程管理體系, 通過信息化推動(dòng)管理地規(guī)范化, 在 信息化地應(yīng)用過程中不斷探索市場環(huán)境下工程建設(shè)管理地新思路和新方法.plEanqFDPw根據(jù)工程部業(yè)務(wù)工作地實(shí)際情況,項(xiàng)目首先滿足工程建設(shè)管理中應(yīng)用最廣泛、問題最突岀地基本 需求.項(xiàng)目功能需求包括:建立工程外部協(xié)作系統(tǒng)與MSS等系統(tǒng)地接口;建立設(shè)計(jì)協(xié)作服務(wù)、監(jiān)理協(xié)作服務(wù)、施工協(xié)作服務(wù)模塊,為郵電設(shè)計(jì)院、電話監(jiān)理公司和電 信工程公司提供工程部所需地協(xié)作服務(wù),保證工程建設(shè)實(shí)施流程地開展;DXDiTa9E3d在建立工程協(xié)作服務(wù)模塊地基礎(chǔ)上,建立工程外部協(xié)作系統(tǒng)與郵電設(shè)計(jì)院、電話監(jiān)理公司、電信工程公司信息系統(tǒng)地接口

6、,實(shí)現(xiàn)工程部與三家實(shí)施單位地信息交互與業(yè)務(wù)協(xié)作;RTCrpUDGiT本技術(shù)解決方案就是針對實(shí)現(xiàn)工程建設(shè)部與三家實(shí)施單位信息交互與業(yè)務(wù)協(xié)作接口中施工 單位接口地技術(shù)解決方案地組成部分.5PCzVD7HxA在接口地調(diào)用過程中,存在施工系統(tǒng)調(diào)用外協(xié)系統(tǒng)接口地情況,這時(shí)候,施工系統(tǒng)作為客 戶端,外協(xié)系統(tǒng)作為服務(wù)端;也存在外協(xié)系統(tǒng)調(diào)用施工系統(tǒng)地情況,這時(shí)候,外協(xié)系統(tǒng)作為客 戶端,施工系統(tǒng)作為服務(wù)端.本方案中,除了特殊另外說明外,不考慮外協(xié)系統(tǒng)和施工系統(tǒng)角色 換位地問題.如果一方發(fā)起了調(diào)用,那么它就是客戶端,另一方就是服務(wù)端.反之亦然.jLBHrnAlLg4 接口方式工程外協(xié)系統(tǒng)與施工系統(tǒng)之間地接口采用W

7、eb Service接口形式來進(jìn)行業(yè)務(wù)數(shù)據(jù)地交互接口數(shù)據(jù)傳輸采用XML數(shù)據(jù)交換格式,utf-8編碼.在外協(xié)系統(tǒng)中提供 Web Service地API接口 .提供由施工系統(tǒng)調(diào)用獲得信息;并且提供施工系 統(tǒng)提交信息地 API接口 .XHAQX74J0X同樣,在施工系統(tǒng)中提供 Web Service地API接口 .提供由外協(xié)系統(tǒng)提交信息地 API接口 . 考慮到工程外協(xié)中地?cái)?shù)據(jù)信息不僅包括了XX電信工程公司地?cái)?shù)據(jù)而且還包含了其他地施工單位地?cái)?shù)據(jù)信息.而這些單位也各有其各自工程應(yīng)用系統(tǒng).這樣,外協(xié)系統(tǒng)對各個(gè)施工單位系 統(tǒng)所提供地接口 API及其參數(shù)信息、格式均是統(tǒng)一地.同時(shí),也要求各個(gè)施工單位所提供地

8、 接口 API及其參數(shù)、格式等也必須要求統(tǒng)一.外協(xié)系統(tǒng)與施工系統(tǒng)屬于一對多地關(guān)系.LDAYtRyKfE外協(xié)系統(tǒng)要求能夠有目地,信息有過濾地把業(yè)務(wù)信息通過接口正確地發(fā)送給相應(yīng)施工系統(tǒng)接口 非相關(guān)地信息不要發(fā)送給對應(yīng)地施工系統(tǒng).Zzz6ZB2Ltk施工系統(tǒng)建立用戶映像對照表、字典對照表、單位對照表等數(shù)據(jù)映像,傳遞給外協(xié)地?cái)?shù)據(jù)使用 地是映像中轉(zhuǎn)換后地外協(xié)系統(tǒng)能夠識(shí)別數(shù)據(jù);同時(shí),接收到地?cái)?shù)據(jù)也根據(jù)對照表轉(zhuǎn)換成各自能夠解釋地?cái)?shù)據(jù)格式.dvzfvkwMI1數(shù)據(jù)初始化地時(shí)候,由施工系統(tǒng)主動(dòng)調(diào)用外協(xié)系統(tǒng)地接口,以獲得用戶信息、字典信息、單位信息、項(xiàng)目信息等基礎(chǔ)信息.以后,一旦發(fā)生數(shù)據(jù)地變動(dòng),由外協(xié)系統(tǒng)主動(dòng)往施

9、工系統(tǒng)發(fā)送 信息.rqyn14ZNXI外協(xié)系統(tǒng)不主動(dòng)請求施工系統(tǒng)獲得數(shù)據(jù),但是外協(xié)系統(tǒng)會(huì)主動(dòng)請求施工系統(tǒng)發(fā)送數(shù)據(jù).施工系統(tǒng)主動(dòng)請求外協(xié)系統(tǒng)獲得數(shù)據(jù),也會(huì)主動(dòng)請求外協(xié)系統(tǒng)發(fā)送數(shù)據(jù)4接口安全4 .1接口認(rèn)證調(diào)用認(rèn)證:雖然接口雙方都是存在于電信內(nèi)部網(wǎng)絡(luò)中,但是,仍不能排除接口服務(wù)被攻擊、 惡意調(diào)用以及非法調(diào)用等.所以,從接口調(diào)用上,必須考慮調(diào)用地認(rèn)證安全問題.EmxvxOtOco本方案中地接口,在客戶端調(diào)用服務(wù)端地時(shí)候,必須經(jīng)過調(diào)用身份認(rèn)證.考慮施工系統(tǒng)地開發(fā)平臺(tái)地多樣性,但同時(shí)接口服務(wù)運(yùn)行平臺(tái)都是Win dows地情況,本方案采用 Win dows安全身份認(rèn)證地方式.即在訪問接口所在地服務(wù)地時(shí)候,

10、都必須進(jìn)行資格審查(使用Credentials 發(fā)送認(rèn)證信息).SixE2yXPq5另外,接口采用SOAP協(xié)議,因此在接口配置上面需要屏蔽HTTP GET和HTTP POS1等其他協(xié)議.6ewMyirQFL在接口中審核并進(jìn)行日志地記錄.使用最低權(quán)限地進(jìn)程帳戶運(yùn)行 Web服務(wù)(通過Machine.config中地<processModel> 元素來配置).kavU42VRUs接口不支持動(dòng)態(tài)生成WSDL因此作為服務(wù)端,應(yīng)該禁止文檔協(xié)議.在服務(wù)端禁用跟蹤,禁用調(diào)式編譯業(yè)務(wù)用戶認(rèn)證:由于接口涉及電信工程中地各個(gè)不同地業(yè)務(wù),有獲取字典、獲得項(xiàng)目信息、發(fā)送開工報(bào)告等,所以,建立一套業(yè)務(wù)地用戶認(rèn)

11、證機(jī)制是必須地不同地用戶,所具備有地授權(quán)不一樣,所能執(zhí)行地業(yè)務(wù)也不一樣同時(shí),業(yè)務(wù)用戶認(rèn)證中地用戶信息也是記錄接口日志中地重要組成部分 y6v3ALoS89本方案采用地是在接口信息中包含業(yè)務(wù)認(rèn)證用戶信息地方式來進(jìn)行認(rèn)證服務(wù)端在收到請求地時(shí)候,應(yīng)先驗(yàn)證業(yè)務(wù)地授權(quán)用戶,如果該業(yè)務(wù)用戶沒有執(zhí)行當(dāng)前業(yè)務(wù)地權(quán)限,應(yīng)終止業(yè)務(wù)地執(zhí)行,并給出非法用戶地警告信息反饋回客戶端.M2ub6vSTnP一般情況下,業(yè)務(wù)認(rèn)證地用戶是系統(tǒng)中地用戶業(yè)務(wù)認(rèn)證其實(shí)就是應(yīng)用系統(tǒng)認(rèn)證地組成部分業(yè)務(wù)認(rèn)證地用戶信息經(jīng)過加密之后包含在要發(fā)送地信息(XML體 )中,即在發(fā)送地信息中包含業(yè)務(wù)用戶地信息(參見下面地?cái)?shù)據(jù)格式說明).OYujCfmU

12、Cw4 .2數(shù)據(jù)安全數(shù)據(jù)地安全表現(xiàn)為如何保證數(shù)據(jù)在網(wǎng)絡(luò)傳輸過程中不會(huì)被截獲并被解析其中地內(nèi)容而 引起信息泄露與如何保證數(shù)據(jù)在傳輸?shù)剡^程中地?cái)?shù)據(jù)地完整性兩個(gè)方面 eUts8ZQVRdWeb Service采用XML數(shù)據(jù)格式來傳輸信息所以,無論是發(fā)送數(shù)據(jù)還是返回結(jié)果,都 要求采用對XML數(shù)據(jù)加密之后來傳輸至于采用何種方式地加密技術(shù),本方案為了保密,只 能在開發(fā)地時(shí)候由開發(fā)人員口頭告知涉及到加密技術(shù)就要涉及到加密地密鑰問題目前,外協(xié)系統(tǒng)和施工系統(tǒng)接口上有很多種類型地業(yè)務(wù),到底是每種類型地業(yè)務(wù)采用不同地密鑰,還是按分組來采用同一種密鑰地方式,還是所有地業(yè)務(wù)全部采用同一種地密鑰地方式, 按照需求各有不同

13、地選擇本方案采用地是最后一種地方式密鑰地發(fā)布由作為服務(wù)方來發(fā)布,由客戶端獲取密鑰地發(fā)布方式待定 sQsAEJkW5T為了保證數(shù)據(jù)地完整性,首先:方案采用數(shù)據(jù)簽名(SOAPSecurity Extensions: DigitalSig nature ) 利用 XML地 數(shù)字簽名(XML Digital Sig nature syn tax XML-Sig nature)對SOAP進(jìn)行擴(kuò)展,在 SOAP地頭元素中定義簽名屬性(SOAP-SEC:Signature)來實(shí)現(xiàn)其次: 限制并驗(yàn)證Web方法輸入地類型、長度、格式和范圍,驗(yàn)證對XML輸入數(shù)據(jù)地驗(yàn)證是基于 已協(xié)商地架構(gòu)等 GMslasNXkA5

14、事務(wù)處理事務(wù)是一組相關(guān)地任務(wù),作為獨(dú)立于其他任務(wù)地獨(dú)立單元成功(提交)或失敗(中止) 分布式事務(wù)是影響多個(gè)資源地事務(wù)要提交分布式事務(wù),所有參與者都必須保證對數(shù)據(jù)地任何更改是永久地不論系統(tǒng)崩潰或是發(fā)生其他無法預(yù)料地事件,更改都必須是持久地即使只有一個(gè)參與者無法保證這一點(diǎn),整個(gè)事務(wù)也將失敗,在事務(wù)范圍內(nèi)對數(shù)據(jù)地任何更改均將回滾 TlrRGchYzg外協(xié)系統(tǒng)和施工系統(tǒng)是處于網(wǎng)絡(luò)之上地兩個(gè)分布式接口,使用地是分布式事務(wù)要啟用分布式事務(wù),可能需要通過網(wǎng)絡(luò)啟用 MS DTC(考慮外協(xié)平臺(tái)和施工平臺(tái)都是運(yùn)行在Win dows上),以便在使用應(yīng)用了最新地Service Pack地較新操作系統(tǒng)(例如 Windo

15、ws XP或Windows 2003)時(shí)使用分布式事務(wù).如果啟用了 Windows防火墻(Windows XPService Pack 2地默認(rèn)設(shè)置),必須允許 MS DTC服務(wù)使用網(wǎng)絡(luò)或打開 MS DTC端口 . 7EqZcWLZNX接口中地服務(wù)端和客戶端地環(huán)境事務(wù)始終相同,客戶端創(chuàng)建地事務(wù)上下文并應(yīng)用對于服務(wù)端地當(dāng)前地事務(wù),以便對于該事務(wù)上下文是當(dāng)前地.這樣地事務(wù)會(huì)造成性能損失,因?yàn)榭赡苄枰^承原來地上下文,但是,這樣地事務(wù)確保了在數(shù)據(jù)庫操作地時(shí)候信息地完整性.接口中事務(wù)地發(fā)起總是由客戶端發(fā)起地,并負(fù)責(zé)事務(wù)地提交和回滾等控制.lzq7IGf02E6性能考慮在接口設(shè)計(jì)地時(shí)候就應(yīng)該考慮性能上面

16、地問題,不要在事后再加入性能.同時(shí),在項(xiàng)目地開發(fā)過程要反復(fù)進(jìn)行測試,可以從機(jī)器地吞吐量和響應(yīng)時(shí)間兩個(gè)基本地指標(biāo)來衡量接口地 性能.接口上面地性能考慮主要從下面幾個(gè)方面來優(yōu)化:zvpgeqJ1hk使用一次連接,多次調(diào)用,優(yōu)化連接資源 .對于并行地接口調(diào)用使用異步地調(diào)用方式.優(yōu)化線程池減少競爭.考慮使用XML壓縮.如果不需要返回,考慮使用單工通訊地方式.適當(dāng)?shù)卦O(shè)置(如果有代理)代理超時(shí),頁面超時(shí),WebService超時(shí).設(shè)計(jì)"大塊頭"地接口減少往返.基于消息地編程而不是遠(yuǎn)程過程調(diào)用(RPC).使用XML字串作為參數(shù).盡量使用原始數(shù)據(jù)類型參數(shù) .避免在調(diào)用之間維護(hù)服務(wù)器狀態(tài).考

17、慮為復(fù)雜地WebMethod提供輸入校驗(yàn).考慮對WebMethod地結(jié)果使用緩存.選擇適用地大數(shù)據(jù)包傳送方式 避免調(diào)用本地地 WebService.7容錯(cuò)處理客戶端向服務(wù)端發(fā)送數(shù)據(jù),服務(wù)端解析數(shù)據(jù),反饋信息給客戶端,這中間地環(huán)節(jié)只要某一個(gè)環(huán)節(jié)出現(xiàn)問題,都會(huì)造成接口地失敗.按照失敗產(chǎn)生地環(huán)節(jié)分類,我們可以從三個(gè)方面來處理接口地失敗.NrpoJac3v1網(wǎng)絡(luò)連接失敗:在調(diào)用接口地時(shí)候,由于網(wǎng)絡(luò)不通,造成數(shù)據(jù)不能正常傳輸.這樣,客戶端應(yīng)該能夠記錄發(fā)送地日志,按照一定地時(shí)間間隔重試發(fā)送.本方案定為重試.1nowfTG4KI發(fā)送20次,每次時(shí)間間隔2小時(shí).如果一直發(fā)生網(wǎng)絡(luò)不通地情況,該發(fā)送日志被保存下來

18、,待后手工發(fā)送.所以,客戶端系統(tǒng)應(yīng)該實(shí)現(xiàn)手工發(fā)送數(shù)據(jù)地功能反饋錯(cuò)誤信息:服務(wù)端在解析數(shù)據(jù)包,執(zhí)行數(shù)據(jù)包業(yè)務(wù)地時(shí)候,可能會(huì)發(fā)生異常所以,服務(wù)端應(yīng)當(dāng)能夠捕捉異常信息,比如“非法XML格式”等,然后反饋給客戶端.客戶端在接受到這類地錯(cuò)誤信息之后,應(yīng)當(dāng)進(jìn)行日志記錄,能夠自動(dòng)或手工分析異常地信息.fjnFLDa5Zo網(wǎng)絡(luò)連接正常,但是無信息反饋:這種情況下,一般是服務(wù)端出現(xiàn)了異常,但是又沒 有捕捉到地情況下發(fā)生這種情況下,客戶端把這種錯(cuò)誤當(dāng)作“網(wǎng)絡(luò)連接失敗”來 處理.服務(wù)端應(yīng)能夠?qū)崿F(xiàn)相同數(shù)據(jù)包重新發(fā)送過來地處理機(jī)制 tfnNhnE6e58數(shù)據(jù)格式在WebService地調(diào)用過程中,無論是外協(xié)系統(tǒng)還是施工

19、系統(tǒng),都有發(fā)送數(shù)據(jù)和接收數(shù)據(jù)地要求,也 即雙方系統(tǒng)同時(shí)作為客戶端又作為服務(wù)端.我們統(tǒng)稱這些傳遞地?cái)?shù)據(jù)為報(bào)文.HbmVN777sL客戶端發(fā)送報(bào)文,屬于調(diào)用;服務(wù)端接收報(bào)文,屬于被調(diào)用客戶端和服務(wù)端互相之間通訊地請求報(bào)文和結(jié)果報(bào)文遵循XML格式.客戶端發(fā)送請求報(bào)文,服務(wù)器解析調(diào)用報(bào)文,執(zhí)行報(bào)文中所在接口對應(yīng)地服務(wù)功能.生成結(jié)果報(bào)文,以xml格式頁返回給請求者. 請求者拿到結(jié)果報(bào)文,進(jìn)行解析,然后再進(jìn)行相應(yīng)地處理.V7l4jRB8Hs8.1約定報(bào)文中所有地字典信息(比如性別1-男,2-女),都以代碼地值(1或者2)來傳遞施工單位 向外協(xié)系統(tǒng)發(fā)送地報(bào)文中地代碼都需要轉(zhuǎn)換成外協(xié)地代碼,外協(xié)系統(tǒng)向施工系統(tǒng)

20、發(fā)送地報(bào) 文中地代碼無需轉(zhuǎn)換.83ICPA59W9報(bào)文中地其他數(shù)據(jù)類型,比如貨幣、ROWID,自定義對象類型等,根據(jù)需要轉(zhuǎn)換成文本、數(shù)值或二進(jìn)制(最終轉(zhuǎn)換成 Base64字符)地?cái)?shù)據(jù)類型.mZkklkzaaP報(bào)文中數(shù)值信息,轉(zhuǎn)換成文本,如:vltemCou nt>50</ltemCou nt><ValueSum>12368.36</ValueSum>報(bào)文中數(shù)值不支持科學(xué)計(jì)數(shù)地方式.報(bào)文中數(shù)值地單位使用國標(biāo)地單位,比如貨幣使用“元”,長度使用“米”等.無國標(biāo)地單位以約定為準(zhǔn).AVktR43bpw報(bào)文中地日期信息,轉(zhuǎn)換成 YYYYMMDD HHmms本格式

21、(24小時(shí)制).如果是空日期,則轉(zhuǎn)換 成空文本.ORjBnOwcEd報(bào)文中地true和false數(shù)據(jù)類型,轉(zhuǎn)換成0(表示false)、1 (表示true)報(bào)文中地二進(jìn)制數(shù)據(jù),轉(zhuǎn)換成 Base64字符方式發(fā)送.報(bào)文中地記錄集,放在< Records標(biāo)簽中;報(bào)文中一條記錄,放在 < Records標(biāo)簽中.報(bào)文中如果存在多條記錄,則在 <Records>標(biāo)簽中就包含多個(gè)地<Record>標(biāo)簽.如果報(bào)文中僅 有一條記錄,則<Records>標(biāo)簽中只包含一個(gè)<Record>標(biāo)簽如果沒有記錄,則僅僅包含一 個(gè)vRecords>標(biāo)簽,沒有 &

22、lt;Record>標(biāo)簽 2MiJTy0dTT如果返回結(jié)果數(shù)據(jù)集非常多,在性能考慮和數(shù)據(jù)量沖突地情況下,可以使用分頁返回?cái)?shù)據(jù)集 地方式分批返回?cái)?shù)據(jù)(每次返回最多100條記錄)服務(wù)端提供分批結(jié)果返回地功能.至于如 何使用分頁查詢地功能,參見下面地XML框架說明.gIiSpiue7A8.2施工系統(tǒng)向外協(xié)系統(tǒng)發(fā)送請求施工系統(tǒng)向外協(xié)系統(tǒng)發(fā)送請求地?cái)?shù)據(jù)目前有幾點(diǎn)需要考慮: 如何請求查詢一個(gè)業(yè)務(wù)數(shù)據(jù)如何新增一條記錄,新增之后如何點(diǎn)到記錄地鍵值 如何修改一條記錄如何刪除一條記錄文檔如何上傳一條記錄中一個(gè)FilelD地字段如何上傳多個(gè)文件 如何在一條記錄中補(bǔ)充上傳文檔如何在一條記錄中刪除一個(gè)文檔如何獲得

23、文檔地基本信息如何獲得文檔地所有兄弟信息如何獲得文檔地所有父親信息如何下載一個(gè)文檔針對這些問題,接口方案地解決方法如下:請求查詢一個(gè)業(yè)務(wù)數(shù)據(jù)施工系統(tǒng)針對外協(xié)系統(tǒng)發(fā)送地業(yè)務(wù)數(shù)據(jù)查詢請求根據(jù)業(yè)務(wù)類型有很多種.為了簡化接口,而不是在接口上進(jìn)行業(yè)務(wù)操作,所以,外協(xié)系統(tǒng)將施工系統(tǒng)發(fā)起地?cái)?shù)據(jù)查詢請求看作是數(shù)據(jù)下載地一種方式, 而不為了復(fù)雜地業(yè)務(wù)查詢請求提供復(fù)雜地條件解析.uEhOUlYfmh外協(xié)系統(tǒng)提供地?cái)?shù)據(jù)查詢接口是從數(shù)據(jù)下載和數(shù)據(jù)延期性來考慮地.為了滿足數(shù)據(jù)地下載,外協(xié)系統(tǒng)提供了按照某一個(gè)表地主鍵來下載數(shù)據(jù)和按照記錄地變更時(shí)間范圍來下載數(shù)據(jù)地兩種方式查詢 請求.IAg9qLsgBX>?>&

24、lt; XmlData >serInfo> < Description>< RowID > 0</ RowID >_ < KeyValue> 123e> < QueryBeginTime> 20061018153000</ QueryBeginTime> <請求報(bào)文:en codi ng="utf-8">><>xmlversio n="1.0"</ Description >ime > 20061019153000&l

25、t;/ QueryEndTime >wghWvVhPE< Use</ U</ KeyValuQueryE ndT </ XmlData >Uw響應(yīng)報(bào)文:L<? xml version="1.0"en codi ng="utf-8"?>< XmlData >RowID > 100 </ RowID >alue1 </ Field1 ></ Description>< Record >Descripti on< Field1 > V&

26、lt; Records >Field2 > Value2 </ Field2 >< Field3 > Value3 </ Field3 >L_I< Field4 > Value4 </ Field4 ></ Record >< Record >< Field1 > Value1 </ Field1 >< Field2 > Value2 </ Field2 >ld4 > 一</ Record >< Field3 > Valu

27、e3 </ Field3 >Record > 一< Field1 > Value1 </ Field1 >< F eld4 > Value4 </ Fie< Field2 > Value2 </Field2 > 一< Field3 > Value3 </ Field3 >Records >XmlData >< Field4 > Value4 </ Field4 ></ Record >asfpsfpi4k報(bào)文說明:標(biāo)簽名說明<XmlD

28、ata>報(bào)文數(shù)據(jù)主體vDescripti on >報(bào)文頭部信息<Records>記錄集合vRecord >一行記錄<UserInfo >業(yè)務(wù)認(rèn)證地用戶信息<User>業(yè)務(wù)用戶登錄名<PassWord>業(yè)務(wù)用戶驗(yàn)證口令vRowlO第一次請求地時(shí)候,客戶端RowID發(fā)送0,表示從第0條記錄開發(fā)返回. 服務(wù)端根據(jù)條件查詢,發(fā)現(xiàn)結(jié)果超過100條記錄,則在返回地結(jié)果中,RowID 地值為99,表示服務(wù)端當(dāng)前地記錄位置處在第100條地位置上,后面還會(huì)有剩余地記錄.客戶端檢查返回地結(jié)果,如果發(fā)現(xiàn)RowID大于0,則繼續(xù)發(fā)送請求進(jìn)行查詢.但是,

29、客戶端第二次發(fā)送請求繼續(xù)查詢地時(shí)候,RowID地值要賦值為第一次返回地值,即RowID=99 .服務(wù)端第二次收到請求地時(shí)候,發(fā)現(xiàn)RowID是99,則從第100條返回結(jié)果.以此類推循環(huán)調(diào)用,直到服 務(wù)端達(dá)到記錄地末尾,這時(shí)候,服務(wù)端在返回地結(jié)果中 RowID=0.客戶端發(fā) 現(xiàn)服務(wù)端RowID=0終止循環(huán)調(diào)用.字典、用戶信息、單位信息,因?yàn)榉祷氐刈侄伪容^少,不受100條記錄返回地限制.一次調(diào)用,就返回全部地結(jié)果.vKeyValue >查詢時(shí)主鍵地值.這個(gè)KeyValue和下面地 vQueryBeginTimexQueryEndTime是互斥地.如果在請求地時(shí)候提供了主 鍵地值,表示客戶端要求

30、服務(wù)器按照主鍵地值查詢一條記錄.如果客戶端提供了主鍵地值,則服務(wù)端將忽略vQueryBeginTimeQueryEndTime中地 值.字典、用戶信息、單位信息,因?yàn)闆]有查詢時(shí)間范圍,所以KeyValue 即表示字典類型.vQueryBeg in Time > vQueryE ndTime>查詢時(shí)時(shí)間段范圍.vQueryBeginTime是起始時(shí)間,vQueryEndTime 是結(jié)束時(shí)間.表示客戶端要求服務(wù)端查詢在這個(gè)時(shí)間范圍之內(nèi)所有變更過 地記錄(包括新增、修改、刪除).在外協(xié)中,一條記錄新增地時(shí)候,它地創(chuàng)建時(shí)間和最后修改時(shí)間是一 樣地,以后修改記錄地時(shí)候,創(chuàng)建時(shí)間不變,改變地僅

31、僅是最后修改時(shí)間. 同時(shí),外協(xié)系統(tǒng)中刪除記錄僅僅在“記錄是否刪除”字段中標(biāo)記“1”,并不是真正地物理刪除記錄.這里地時(shí)間指地是記錄變更地時(shí)間,不是記錄中地某個(gè)業(yè)務(wù)時(shí)間.如果用戶需要按照業(yè)務(wù)時(shí)間來查詢數(shù)據(jù),則施工系統(tǒng)把外協(xié)系統(tǒng)地?cái)?shù)據(jù)獲取 到本地進(jìn)行保存,在施工系統(tǒng)中提供按照業(yè)務(wù)時(shí)間查詢地功能vQueryBeginTimexQueryEndTime和KeyValue是互斥地.如果客戶 端需要按照時(shí)間范圍來查詢,則必須 vKeyValue空.<Field1 ><Field2 ><Field3 ><Field4 >一行記錄中地央文字段名稱.實(shí)際中,這些標(biāo)

32、簽都是字典地央文名.字段地 標(biāo)簽全部是大寫.具體地字段名稱請參見提供地?cái)?shù)據(jù)模型821新增一條記錄,得到記錄地鍵值為了簡化數(shù)據(jù)模型地處理,本方案不考慮主從表地并發(fā)處理情況.如果存在主從表地?cái)?shù)據(jù)需要上傳,那么,在一個(gè)事務(wù)中,施工單位首先先上傳主表地記錄,從反饋信息中獲得主表地主鍵值.然后,把剛剛獲得地主表地主鍵值賦值給從表地對應(yīng)外鍵,再上傳從表數(shù)據(jù),得到從表地主鍵值.ooeyYZTjjl如果不是主從表,而是單表,則直接上傳數(shù)據(jù),從反饋信息中得到主鍵值這種情況地優(yōu)點(diǎn)是:數(shù)據(jù)和表相關(guān),施工單位可以靈活地控制表之間地關(guān)系;同時(shí),數(shù)據(jù)包中地報(bào)文比較簡單,容易解析;接口上面比較清晰,與業(yè)務(wù)地耦合比較低 .B

33、keGulnkxl缺點(diǎn)是:一個(gè)業(yè)務(wù)涉及地主從表不能在同一個(gè)報(bào)文中(這個(gè)缺點(diǎn)可以通過施工系統(tǒng)靈活地控制表之間關(guān)系來解決);一個(gè)業(yè)務(wù)中可能會(huì)使用到兩個(gè)或兩個(gè)以上地接口,造成業(yè)務(wù)完整性上面地分離(這種缺點(diǎn)可以通過把業(yè)務(wù)放在一個(gè)事務(wù)中來解決);PgdOOsRIMo鍵值地返回:在調(diào)用新增接口之后,外協(xié)會(huì)按照記錄地順序返回外外協(xié)中所生成地鍵值.施工單位獲得鍵值之后,可以在本地表中更新記錄地主鍵值.3cdXwckm15請求報(bào)文:<? xml version="1.0"en codi ng="utf-8"?>< XmlData >< Use

34、rlnfo >< Useescripti on>d>r > ZhangSan</ User >Password > 123456</ Password >< Note > 開工報(bào)告 </ Note >1</ Description</ Userlnfo >>Records >< Recor< KeyField ></ KeyField >< NormalField1> Valuel </ NormalFieldl< Normal

35、Field2 > Value2 </ NormalField2< NormalField3> Value3 </ NormalFieldNormalField43>> Value4 </ NormalField4</ Record >< Record >< KeyField ></ KeyField >< NormalFieldl> Valuel </ NormalFieldl< NormalField2 > Value2 </ NormalField2<

36、NormalField3< NormalField4 > Value4 </ NormalField4> Value3 </ NormalField3</ Records ></ XmlData >Record >h8c52WOngM響應(yīng)報(bào)文:匚v? xml version="1.0"en codi ng="utf-8"?> XmlData >< DescriptionResult >成功</ Result > <!-如果失敗,則<Result&g

37、t; 里面內(nèi)容是:失?。海ㄥe(cuò)誤原因)->> 一< Records > 一< Record >/ DescriptionKeyField > Valuel </ KeyField ></ Record >< Record >< KeyField > Value2 </ KeyFieldS> 一</ XmlData > v4bdyGious> l</ Record >丨 l</ Record報(bào)文說明:標(biāo)簽名<XmlData>vDescripti on

38、 ><Records>vRecord >vUserlnfo ><User><PassWord><Note>說明報(bào)文數(shù)據(jù)主體報(bào)文頭部信息記錄集合一行記錄業(yè)務(wù)認(rèn)證地用戶信息業(yè)務(wù)用戶登錄名業(yè)務(wù)用戶驗(yàn)證口令業(yè)務(wù)地簡單描述.比如:開工報(bào)告、施工組織方案 等請求中地vKeyField >一行記錄中地主鍵字段.在新增地時(shí)候,施工系統(tǒng)所給地主鍵字段內(nèi)容為 空.外協(xié)系統(tǒng)中根據(jù)主鍵字段內(nèi)容為空,認(rèn)為這是一條新增地記錄響應(yīng)中地vKeyField >一行記錄中地主鍵字段.外協(xié)系統(tǒng)返回地主鍵值.這里地主鍵值和施工系 統(tǒng)發(fā)送地記錄地順序是一一對

39、應(yīng)地.vResult >反饋報(bào)文中地保存成功與否信息.如果保存成功,則信息是“成功”如果保存失敗,則信息是“失敗:(后面是錯(cuò)誤地詳細(xì)信息)”823修改一條記錄施工系統(tǒng)在修改了一條記錄地時(shí)候,上傳地報(bào)文中與新增地報(bào)文類似,只是主鍵地信息不能為空 外協(xié)系統(tǒng)判斷主鍵地信息,如果發(fā)現(xiàn)主鍵地信息不為空,則認(rèn)為是修改了一條記錄.如果施工系統(tǒng)報(bào)文中主鍵不為空,而外協(xié)系統(tǒng)在數(shù)據(jù)庫對應(yīng)地表中又沒有發(fā)現(xiàn)對應(yīng)地記錄,則自動(dòng)轉(zhuǎn)換成新增地方式來處理這條記錄.J0bm4qMpJ9外協(xié)系統(tǒng)在反饋中,還是會(huì)把主鍵返回給施工系統(tǒng).但是,這種情況下,施工系統(tǒng)可能不再需要維護(hù)這個(gè)主鍵.即使是僅僅修改了一個(gè)字段,施工單位還得需

40、要上傳全部地字段信息(包含被修改地字段)給外 協(xié)系統(tǒng).施工系統(tǒng)不是對記錄做物理刪除,而僅僅是作了邏輯刪除,即僅僅在記錄地刪除標(biāo)志位上面做了“ 1”地標(biāo)志.這種情況對記錄來說,也是修改地范圍.只是需要在<Note>業(yè)務(wù)地簡單描述中說明“邏 輯刪除”.即使是邏輯刪除記錄,施工系統(tǒng)也必須上傳全部地字段到外協(xié)系統(tǒng).XVauA9grYP請求報(bào)文:<? xml version="1.0"encoding="utf-8"?> < XmlData > < Userlnfo > < User > ZhangSan

41、</ User > _< PassWord > 123456</ PassWord > </ Userlnfo >< Description >< Note > 停工通知確認(rèn) </ Note ></ Description >< Records >< Record >< KeyField > KeyValue1 </ KeyField >< NormalField1 > Value1</ NormalField1 >< N

42、ormalField2 > Value2 </ NormalField2 >< NormalField3 > Value3 </ NormalField3cord > < Record >< KeyField > KeyValue2 </1 </ NormalField1> v NormalField23 > Value3 </ NormalField3> Value4v/NormalField4>v/ReKeyField>v NormalField1> Valuev/ No

43、rmalField2> v NormalField> Value4v/NormalField4>v/Re< NormalField4> Value2< NormalField4cord > 一</ Records >R9C6TJscwXmlData >響應(yīng)報(bào)文:<? xmlversion="1.0"encoding="utf-8"?> _< XmlData > _< Description> </RecordResult >成功</ Resu

44、lt > <!-如果失敗,則<Result> 里面內(nèi)容是:失?。海ㄥe(cuò)誤原因) / Description>< Records >< Record > < KeyField > Valuel </ KeyFieldecord > 一< Record >匸< KeyField > Value2 </ KeyField>一</ Record ></s> 一</ XmlData> LpN9LBDdtrd報(bào)文說明:標(biāo)簽名說明<XmlData>報(bào)

45、文數(shù)據(jù)主體<Descripti on >報(bào)文頭部信息<Records>記錄集合<Record >一行記錄<UserInfo >業(yè)務(wù)認(rèn)證地用戶信息<User>業(yè)務(wù)用戶登錄名<PassWord>業(yè)務(wù)用戶驗(yàn)證口令<Note>業(yè)務(wù)地簡單描述.比如:開工報(bào)告、施工組織方案 等請求中地<KeyField >一行記錄中地主鍵字段.在修改地時(shí)候,施工系統(tǒng)所給地主鍵字段內(nèi)容不 能為空.外協(xié)系統(tǒng)中根據(jù)主鍵字段內(nèi)容不為空,認(rèn)為這是一條修改地記錄響應(yīng)中地<KeyField >一行記錄中地主鍵字段.外協(xié)系統(tǒng)返回地

46、主鍵值.這里地主鍵值和施工系 統(tǒng)發(fā)送地記錄地順序是一一對應(yīng)地.<Result >反饋報(bào)文中地保存成功與否信息.如果保存成功,則信息是“成功”如果保存失敗,則信息是“失?。海ê竺媸清e(cuò)誤地詳細(xì)信息)”<NormalField >一行記錄中地央文字段名稱.實(shí)際中,這些標(biāo)簽都是字典地央文名.字段地 標(biāo)簽全部是大寫.具體地字段名稱請參見提供地?cái)?shù)據(jù)模型824刪除一條記錄這里地刪除指地是物理刪除.邏輯刪除在記錄修改地時(shí)候已經(jīng)說明物理刪除是徹底地從數(shù)據(jù)庫中刪除一條記錄,不能恢復(fù).物理刪除地時(shí)候,施工系統(tǒng)只要在報(bào)文中提供主鍵地信息提交,就能夠?qū)崿F(xiàn).DJ8T7nHuGT同樣地,外協(xié)系統(tǒng)在反

47、饋地報(bào)文中返回成功刪除主鍵地信息,如果其中一條記錄不能正常物理刪請求報(bào)文:<?xml version="1.0" encoding="utf-8"?> <XmlData>除,則外協(xié)自動(dòng)回滾所有刪除地操作.即一條記錄不能刪除,則所有地記錄都不能刪除.QF81D7bvUA <Userlnfo > <User>ZhangS an</ User> <PassWord>123456</PassWord> </ UserInfo > <Description >

48、; <Note>物理刪除 </ Not e> </ Description > <Records> <Record> <KeyField >Value1 </ KeyField > </ Record> <Record> <KeyField >Value2 </ KeyField > </ Record> </ Records> </XmlData> 4B7a9QFw9h響應(yīng)報(bào)文:?xml versio n="1.0&

49、quot; en cod in g="utf-8"?> <XmlData> <DescriptionvResult >成功 </ Result ><!-如果失敗,則<Result>里面內(nèi)容是:失?。海ㄥe(cuò)誤原因),同時(shí),KeyField地值為空-></ Descripti on>1<Records> <Record> vKeyField >Value1 </ KeyField > </ Record<Record>vKeyField >

50、;Value2 </KeyField > </Record</Records</XmlData> ix6iFA8xoX報(bào)文說明:(參見數(shù)據(jù)修改說明)825文檔上傳外協(xié)系統(tǒng)中,文檔地信息是保存在另外地一個(gè)表中當(dāng)中地,所以,許多地業(yè)務(wù)表,往往存在一個(gè)FilelD 地主鍵關(guān)聯(lián)到文檔表.在業(yè)務(wù)表中檔,可能有一個(gè)FilelD 地字段,也可能會(huì)有兩個(gè)或兩個(gè)以上地FilelD字段關(guān)聯(lián)到文檔信息表.wt6qbkCyDE涉及到文檔地地方,往往文檔地信息會(huì)比較大,所以,文檔地信息不能包含在基礎(chǔ)業(yè)務(wù)數(shù)據(jù)地報(bào) 文當(dāng)中一起上傳.處理地方法是:Kp5zH46zRk先上傳文檔地實(shí)體,從反

51、饋地信息當(dāng)中得到生成地文檔ID( FilelD),然后,施工系統(tǒng)在本地記錄中地相應(yīng)字段賦值文檔地ID,最后再上傳基本業(yè)務(wù)信息.Yl4HdOAA61如果一條記錄中包含有兩個(gè)或兩個(gè)以上地文檔字段,則施工系統(tǒng)必須依次上傳文檔獲得文檔ID之后,賦值,再上傳基本業(yè)務(wù)信息.ch4PJx4BlI一個(gè)文檔報(bào)文當(dāng)中,只能上傳一個(gè)文檔.文檔報(bào)文如下:<?xml version="1.0" encoding="utf-8"?> <XmlData> <UserInfo > <User>ZhangSar</User>&l

52、t;PassWord> 123456</ PassWord> </ UserInfo > <Description > </ Description > <Records > <Rec ord> <ID></ID> <FILE_PRJ_ID>123456v/FILE_PRJ_ID> <FILE_TYPE>401</FILE_TYPE> <FILE_NA ME>施工組織方案.DOC=/FILE_NAME_vFILE_UNIT>電信工程公

53、司 </FILE_UNIT> <FILE_MAN>張三</FILE_MAN> <FILE_CREATE_TIM>20061031 153005 </ FILE_CREATE_TIM <FILE_AUTHO>張三</ FILE_AUTHOR <FILE_TITLE>項(xiàng)目 XXX施工組織方案 </FILE_TITLE> <KeepMutiFile<FileData>/e5asfdfgafa#sdgsdg</ FileData> </Record > </

54、Records >>1 </ KeepMutiFile ></XmlData> qd3YfhxCzo響應(yīng)報(bào)文:v? xml version="1.0"encoding="utf-8"?>功</ Result > <!-如果失敗,則返回信息是"失敗:(錯(cuò)誤信息)"->XmlData >< Description > < Result > 成</ Descriptionrds > V Record > < ID >

55、 123456 </ ID >L11DO5Record ></ Records ></ XmlData< Reco>門.E836報(bào)文說明:標(biāo)簽名說明<XmlData>報(bào)文數(shù)據(jù)主體vDescripti on >報(bào)文頭部信息<Records>記錄集合vRecord >一行記錄vUserInfo >業(yè)務(wù)認(rèn)證地用戶信息vUser>業(yè)務(wù)用戶登錄名vPassWord>業(yè)務(wù)用戶驗(yàn)證口令vID>文檔地ID,在新增上傳一個(gè)文檔地時(shí)候, 這個(gè)ID永遠(yuǎn)都是空地.外協(xié)系統(tǒng)根據(jù)這個(gè)文件ID是否為空來判斷是否是新地

56、文件.<FILE_PRJ_ID>文檔所屬地項(xiàng)目ID,對于工程協(xié)作系統(tǒng)來說,一個(gè)文檔永遠(yuǎn)都是會(huì)屬于某 個(gè)項(xiàng)目地.這個(gè)項(xiàng)目ID可以是一級(jí)項(xiàng)目,也可以是三級(jí)項(xiàng)目.<FILE_TYPE>文件類型.標(biāo)識(shí)文件地歸類.比如:D401施工組織設(shè)計(jì)=401D402施工項(xiàng)目計(jì)劃進(jìn)度 =402D403施工日報(bào)=403<FILE TYP匡里面地值是代碼,文件類型地代碼可以從字典接口中獲得.<FILE_NAM文檔地文件名稱,帶有擴(kuò)展名.<FILE_UNIT>文件創(chuàng)建單位,中文名<FILE_MAN>文檔創(chuàng)建人(上傳人)<FILE_CREATE_TIME文檔

57、創(chuàng)建時(shí)間<FILE_AUTHOR文檔作者(可為空)<FILE_TITLE >文檔標(biāo)題(可為空)<KeepMutiFile >是否允許多個(gè)文檔同時(shí)有效.這個(gè)標(biāo)簽地值為1或0.當(dāng)值為1地時(shí)候, 則在同樣地項(xiàng)目ID、同樣地文件類型中,同時(shí)可以存在多個(gè)地文檔同時(shí)有 效存在.這種情況下,多個(gè)文檔之間是兄弟之間地關(guān)系,當(dāng)前地文檔是弟 弟,以前地文檔是兄長.當(dāng)這個(gè)值為0地時(shí)候,則在同樣地項(xiàng)目ID、同樣地 文件類型中,只有最后上傳地文檔有效,后面上傳地文檔會(huì)把前面地文檔“擠”到歷史中,成為當(dāng)前文檔地“父親”.這種情況下,當(dāng)前地文檔和 以前上傳地文檔之間是父子地關(guān)系.更詳細(xì)地解釋請

58、參見后面地“一條記 錄中一個(gè)FilelD地字段如何上傳多個(gè)文件”主題相關(guān)內(nèi)容 .<FileData >文件實(shí)體內(nèi)容.文件實(shí)體內(nèi)容用二進(jìn)制讀取岀來之后,然后轉(zhuǎn)換成base64地格式.<Result >反饋報(bào)文中地保存成功與否信息.如果保存成功,則信息是“成功”如果保存失敗,則信息是“失?。海ê竺媸清e(cuò)誤地詳細(xì)信息)”826 條記錄中一個(gè)文檔字段上傳多個(gè)文件外協(xié)系統(tǒng)中,文檔是以一種“有關(guān)系”地方式來存儲(chǔ)地.假設(shè)有這樣一個(gè)業(yè)務(wù)表Tablel ,里面有一個(gè)文檔地外鍵字段 File_ID.當(dāng)我們往Tablel表里面插入一條記錄地時(shí)候,針對這一條記錄,我們希望在File_ID字段中可

59、以帶有多個(gè)地文檔,也即會(huì)有多個(gè)地File_ID. 當(dāng)然,我們可以把這個(gè)表字段地?cái)?shù)據(jù)模型這個(gè)定義:FilelD ,F(xiàn)ile2D,File3_ID,需要多少個(gè)文件,我們就定義幾個(gè)地File_ID 字段.但是這樣就會(huì)帶來問題了,如果你定義了5個(gè)地File_ID 字段,但是,用戶如果想在一條記錄中上傳6個(gè)文檔,那么,這樣地?cái)?shù)據(jù)模型就會(huì)滿足不了用戶地要求.還有一種情 況,如果用戶僅僅上傳了 2個(gè)文檔,那么剩下地3個(gè)File_ID字段就會(huì)白白空著.甚至用戶對這條記錄沒有上傳文件,這樣定義地?cái)?shù)據(jù)模型就白白浪費(fèi)了數(shù)據(jù)庫地資源.S42ehLvE3M還有一種說法,我可以用記錄地形式來表示啊 .對地.上傳多個(gè)文件,

60、是可以在 Table1中新增多 條記錄方式來表示.但是,我們地前提是,Table1是一個(gè)業(yè)務(wù)表,里面地一條記錄就是一筆業(yè)務(wù) .如 果你產(chǎn)生了多條記錄,那么意味這這樣地業(yè)務(wù)進(jìn)行了多次.顯然違背了業(yè)務(wù)數(shù)據(jù)保存地初 衷.501nNvZFis外協(xié)系統(tǒng)引入了“父子”,“兄弟”地文檔保存機(jī)制,即在文檔信息表(Files 表)中保存文檔地基本信息和他們之間地關(guān)系.在同樣地項(xiàng)目ID、同樣地文件類型中,如果可以存在多個(gè)地文檔同時(shí) 有效存在,這種情況下,多個(gè)文檔之間是兄弟之間地關(guān)系.后來者文檔是弟弟,先到地文檔是兄長.在同樣地項(xiàng)目ID、同樣地文件類型中,只有最后上傳地文檔有效,后面上傳地文檔會(huì)把前面地文檔“擠”到

61、歷史中,成為當(dāng)前文檔地“父親”.這種情況下,后來地文檔和以前上傳地文檔之間是父子地關(guān)系.jW1viftGw9如果文檔之間是兄弟關(guān)系地話,則僅僅在業(yè)務(wù)表Tablel中保存最小兄弟地File_ID ;如果文檔 之間是父子關(guān)系地話,則僅僅保存最小輩分地文檔File_ID. xSODOYWHLP兄弟和父子地文檔保存方式其實(shí)都是多個(gè)文檔串聯(lián)地一種保存方式,但是,還是會(huì)有使用上面地區(qū)別地.兄弟關(guān)系一般使用在文檔之間是平級(jí)地情況下.比如施工組織方案,可以有多個(gè)文件,但是,這多個(gè)文件是互為補(bǔ)充地一部分,互相依賴,又缺一不可.這種情況下,施工系統(tǒng)可以把這類型地文件上傳給外協(xié)系統(tǒng),以兄弟地方式保存,施工系統(tǒng)僅僅在業(yè)務(wù)表當(dāng)中保存最后上傳反饋回來地

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論