freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-面向?qū)ο蟮臄?shù)據(jù)建?!獢?shù)據(jù)篩選接口的設(shè)計—論文-文庫吧在線文庫

2025-01-14 17:13上一頁面

下一頁面
  

【正文】 edure Add_Simple_Condition ( p_calling_user_id integer, Required p_app_id integer, p_table_type_code varchar2, Required p_name varchar2 := null, p_negated number := 0, p_container_id integer := null, p_field_name varchar2, Required p_value varchar2 := null, p_value_date date := null, p_parison_field_name varchar2 := null, p_operator_code varchar2, Required p_new_row_id out integer ) is l_field_id integer。 6 PL/SQL 程序設(shè)計 現(xiàn)在 進(jìn)行 本接口設(shè)計的 PL/SQL 程序設(shè)計 部分 。為了不占據(jù)篇幅,數(shù)據(jù)篩選接口的完整數(shù)據(jù)庫架構(gòu)會在后面的數(shù)據(jù)建模部分中一并出現(xiàn)。 很明顯, 做到的靈活控制,還不夠靈活。而這些數(shù)值( A 或者 B或者 C等)是具有 特定意義的。 通過建立外鍵, 可以很容易的做到把 FIELD 里的 COLUMN_NAME 字段一一映射到簡單條件表和序列條件表中,而這兩個表通過聯(lián)接表可以組合成復(fù)雜條件存放到復(fù)雜條件表中。值得注意的是 ,篩選條件中有相當(dāng)一部分是類似于‘ C_U1 IN (A, B, C, D)’的,它也是簡單條件,但是比較特殊一點(diǎn), 這樣的條件 把它叫做簡單序列條件。但是換個角度,大膽的設(shè)想,如果把這些字段不作為列名,能不能做到相互組合呢?如果把這些字段轉(zhuǎn)換成變量,對變量一一賦值,和作為字段相比并沒有做到很大的改善。再則, 如果所寫過程中出現(xiàn)一些問題,也是難以維護(hù)的。 ? 2G 以上可用硬盤空間。所篩選的數(shù)據(jù)都來自于一張表,這張表的字段有 260 個,這些字段中有超過 250 個字段需要作為篩選字段,它們通?;榻M合去篩選出客戶需要的數(shù)據(jù),根據(jù)客戶的需要它們的組合又是多變的。 引用言論: Steve Hoberman 所提出的 “ 抽象組件 ” 的概念和面向?qū)ο笤O(shè)計中的 “ 設(shè)計模式 ” 非常類似。因此 它需要處理海量的數(shù)據(jù),它 的其中一個比較重要的功能是根據(jù)復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。尤其在數(shù)據(jù)建模階段 ,通過傳統(tǒng)的數(shù)據(jù)模型之間的關(guān)系 ,例如主外鍵關(guān)系 ,實(shí)現(xiàn)了一些重要的面向?qū)ο蟮乃枷搿?由于業(yè)務(wù)的關(guān)系, 它需要處理海量的數(shù)據(jù),它的比較重要的 一個 功能是根據(jù)復(fù)雜并且靈活的條件篩選出適當(dāng)?shù)臄?shù)據(jù)返回給客戶。而且這些值是根據(jù)客戶的需求可以去定制的。 方案 1 :直接寫過程來實(shí)現(xiàn)。 由于篩選條件數(shù)量眾多,但是條件之間的很多部分相互重合,從面向?qū)ο蟮慕嵌瘸霭l(fā),這些條件間存在繼承的關(guān)系,如果能采用面向?qū)ο蟮姆椒?,或許能做到重用條件。 根據(jù) 目前得出的結(jié)論,我們現(xiàn)在需要一個表,表中的某一列的記錄值為Complexity 表中作為篩選條件的列名,如下 表 2所示: 表 2 FIELD 字段名 數(shù)據(jù)類型 說明 ID 數(shù)字 主鍵 NAME 文本 COLUMN_NAME 文本 列名 FIELD 表中的 COLUMN_NAME 列存放 Complexity 表中作為篩選條件的列名。也就是說不論一個復(fù)雜條件是由多少個簡單條件組合而成,這些簡單條件間的關(guān)系只有兩種。 試想一下, 如果現(xiàn)在不對這些值不做任何處理,那 可以想 象開發(fā)人員 將會 固定的把這些有著特定意義的數(shù)值寫在 PL/SQL 程序中,這樣做是不能做到客戶靈活定制的,而且顯而易見的是,從安全的角度出發(fā),這樣做也是不安全的。 現(xiàn)在需要創(chuàng)建的表的框架如下: C O N D I T I O NP K I D N A M E N E G A T E D C O N T A I N E R _ I DC O M P O U N D _ C O N D I T I O NP K I D C O N J U N C T I O N _ I DS I M P L E _ C O N D I T I O NP K I D N A M E V A L U E O P E R A T O R _ I D F I E L D _ I DL I S T _ C O N D I T I O NP K I D F I E L D _ I DC O N J U N C T I O NP K I D N A M E C O D EF I E L D P K I D N A M E C O L U M N _ N A M EL I S T _ C O N D I T I O N _ M A T C H _ V A L U E 1P K I D L I S T _ C O N D I T I O N _ I D M A T C H _ V A L U E 圖 4 條件功能組合圖二 到此,對于復(fù)雜表中作為篩選條件的字段比較多(大約 250 個),且相互組合,而篩選條件需要去匹配的值是具有特定意義的,且可以根據(jù)客戶的需要進(jìn)行定制這一基本需求,我們也基本做到了動態(tài)控制,動態(tài)修改,并且便于維護(hù)。 要是通過接口設(shè)計 能把這些關(guān)系像處理篩選列與匹配的數(shù)值一樣處理,這個問題也就解決了。 需要創(chuàng)建四個視圖,分別為簡單條件視圖,序列條件視圖,組合條件視圖,以及條件視圖。 開發(fā)人員 可以用寫一系列的過程來實(shí)現(xiàn),通過傳入必需的參數(shù)來調(diào)用相關(guān)的過程,插入一些數(shù)值。 l_parison_field_type_code varchar2( 100 )。為了不占據(jù)篇幅,這里只以 一個簡單的復(fù)合條件為例: First pound condition (NO_NOTICE IN(B,C,D) AND MSG_DELINQ_DAYS90 AND DO_NOT_PROCESS=9 AND CLIENT_ID=116) declare l_calling_user_id integer。 l_pound_id integer。, p_negated = 0, p_conjunction = 39。, p_negated = 1, p_field_id = l_field_id, p_container_id = l_rule_id, p_new_row_id = l_list_id)。,39。,39。, p_new_row_id = l_simple_id)。CLIENT_ID39。 還需要對存儲在表CONDITION_OPERATOR中的數(shù)值,也就是記錄篩選列和需要匹配的數(shù)值之間的關(guān)系的數(shù)值進(jìn)行處理,以便能動態(tài)處理。 begin 省略部分代碼 if( p_parison_field_ref is not null ) then 省略部分代碼 l_value_this_day_string := 39。 l_value_next_day_string := 39。 else if ( is not null ) then l_value_this_day := to_date( , g_date_format )。39。39。39。39。 end if。 || 39。 || l_value_this_day_string || 39。 || l_value_next_day_string || 39。 || p_parison_field_ref || 39。 || p_parison_field_ref || 39。 || 39。 is null39。 || l_value_this_day_string || 39。 || l_value_next_day_string || 39。 || 39。 || 39。 end if。 end if。 end if。 l_parison := p_field_ref || 39。 else raise_application_error ( g_error_number, 39。 現(xiàn)在還需要通過寫過程來實(shí)現(xiàn)把這些復(fù)雜篩選條件 ‘ 拼裝 ’ 起來,最終篩選出客戶需要的數(shù)據(jù),這樣一個功能。39。 if( is not null ) then l_parison_field_ref := l_effective_prefix || 。 when 39。 then l_where_clause := l_where_clause || Comparison_String( l_row, l_field_ref, l_parison_field_ref )。( 39。 then null。 end case。 融合了面向?qū)ο蟮乃枷牒蟮臄?shù)據(jù)庫在開發(fā)階段會發(fā)生了一些改善,例如提高代碼的可重用性,這就很大程度上減少了開發(fā)階段在代碼編寫上所花費(fèi)的資源,可以很 好的提高軟件的開發(fā)質(zhì)量,并且易于維護(hù)。 [5] Bulusu PL/SQL: A Developer39。除非另有說明,本文的工作是原始性工作。它應(yīng)用于 某公司,此公司由于行業(yè)的關(guān)系需要它去處理龐大的數(shù)據(jù),這些數(shù)據(jù)每天都在以上百萬條甚至上億條的數(shù)量在增加。面向?qū)ο蟮?數(shù)據(jù) 建模是我們研究的一個重要方向。尤其在數(shù)據(jù)建模階段 ,通過傳統(tǒng)的數(shù)據(jù)模型之間的關(guān)系 ,例如主外鍵關(guān)系 ,實(shí)現(xiàn)了一些重要的面向?qū)ο蟮乃枷搿? ( 4)學(xué)??稍试S學(xué)位論文被查閱或借閱。 致 謝 感謝李中志 老師耐心的指導(dǎo)。 [3] Steven PL/SQL Best Practices[M].O39。 end。 then l_where_clause := l_where_clause || Cond_Where_Compound( p_condition_id, p_index_field_prefix )。simple39。 現(xiàn)在還需要 再完成一個對簡單條件,序列條件,以及組合條件都開放的公共調(diào)用接口。Number39。 then l_where_clause := l_where_clause || Comparison_Boolean( l_row, l_field_ref, l_parison_field_ref )。 l_where_clause := 39。 l_effective_prefix varchar2( 100 )。 省略部分代碼 return l_parison。 || l_value_this_day_string。39。 39。 if( ( p_parison_field_ref is not null ) or ( is not null ) ) then if( = 0 ) then l_operator := 39。 || l_value_next_day_string || 39。 || l_value_this_day_string || 39。 || p_field_ref || 39。 || 39。 else if( = 0 ) then l_parison := 39。 || l_value_next_day_string || 39。 || p_field_ref || 39。 || p_field_ref || 39。 || p_field_ref || 39。 || 39。 || 39。 then if( p_parison_field_ref is not null ) then if( = 0 ) then l_parison := 39。39。39。 l_value_next_day := l_value_this_day + 1。39。39。39。39。 l_value_this_day date。, p_new_row_id= l_simple_id)。 Add_Simple_Item_condition ( p_name = null, p_negated = 0, p_container_id = l_rule_id, p_field_id = l_field_id, p_value = 9, p_parison_field_name = null, p_operator = 39。MSG_DELINQ_DAYS39。,39。,39。NO_NOTICE39。 l_state_4_ted1 varchar2( 4000 ) := 39。 l_item_id integer。 begin 省略部分代碼 select ID, Code into l_operator_id, l_operator_code from Condition_Operator where ( lower( Code ) = lower( p_operator_code ) )。 省略部分代碼 end。 到此,數(shù)據(jù)建模完成。 通過以上的分析,現(xiàn)在 只需要再加一個表就可以了,這張表用來存放簡單條件的篩選列與匹配的數(shù)值之間的關(guān)系種類,而對于序列條件,就不用,在程序里很容易做到動態(tài)處理。換句話說,這樣的設(shè)計會花了大量的時間 在做類似的事情上
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1