?
自然框架里的元數(shù)據(jù)
元數(shù)據(jù)的職責(zé):
自然框架里的元數(shù)據(jù)有三個(gè)職責(zé):描述數(shù)據(jù)庫(kù)(字段、表、視圖等),描述項(xiàng)目(功能節(jié)點(diǎn)、操作按鈕等),項(xiàng)目和數(shù)據(jù)庫(kù)的關(guān)系(一個(gè)列表頁(yè)面里需要顯示哪些字段、哪些查詢條件等)
元數(shù)據(jù)的存儲(chǔ):
有兩個(gè)存儲(chǔ)元數(shù)據(jù)的地方,一個(gè)是數(shù)據(jù)庫(kù),另一個(gè)是實(shí)體類。
?
先看一下表結(jié)構(gòu)圖:
【表結(jié)構(gòu)圖】
?
是不是比較眼熟,這個(gè)在以前的通用權(quán)限的地方已經(jīng)介紹過(guò)了,只不過(guò)那個(gè)沒(méi)有用PD畫(huà)出來(lái)。
先看右面的兩個(gè)表;
Manage_Columns(字段描述表)。
這個(gè)表主要是存放字段的說(shuō)明的,比如字段名稱,用戶看的名稱,字段大小,字段類型等。(剩下的幾個(gè)字段最后再說(shuō))。
這個(gè)表的目的就是要給字段做一個(gè)描述,也可以說(shuō)是一份記錄,記錄這個(gè)項(xiàng)目里都有哪些字段。把字段統(tǒng)一管理起來(lái)。
?
Manage_Table(表的描述)
這個(gè)表主要是對(duì)表的描述,記錄一下項(xiàng)目里都有哪些表,以及表的說(shuō)明。除了記錄表之外,還可以記錄項(xiàng)目里有哪些視圖、存儲(chǔ)過(guò)程、自定義函數(shù)等。當(dāng)然也可以記錄觸發(fā)器,不過(guò)我還是建議盡量不要用觸發(fā)器。存儲(chǔ)過(guò)程也應(yīng)該用在刀刃上,而不是導(dǎo)出亂用。在自然框架里面是比較依賴視圖的,多表關(guān)聯(lián)都是先寫(xiě)成視圖的形式的。所以表、視圖、存儲(chǔ)過(guò)程等都是需要記錄下來(lái)的,并且還需要記錄一下他們的關(guān)系。比如說(shuō)一個(gè)視圖里包含哪些表。一個(gè)存儲(chǔ)過(guò)程涉及到了哪些表。
?
這兩個(gè)表就是元數(shù)據(jù)的第一個(gè)職責(zé): 描述數(shù)據(jù)庫(kù)方面的內(nèi)容。
?
我們?cè)倏醋竺娴娜齻€(gè)表
Manage_Function(項(xiàng)目里的功能節(jié)點(diǎn))
所謂的功能節(jié)點(diǎn),就是大功能,小功能,節(jié)點(diǎn),菜單。往小了說(shuō)就是一個(gè)增刪改查的基本頁(yè)面。往大了說(shuō)就是一個(gè)“分組”。
目的就是要記錄一個(gè)項(xiàng)目里到底有哪些功能,而這個(gè)功能的記錄也是比較詳細(xì)的。比如:新聞管理、企業(yè)信息、產(chǎn)品信息、添加訂單、請(qǐng)假、批假等。
?
Manage_Function_Info(功能節(jié)點(diǎn)的詳細(xì)信息)
這個(gè)表是對(duì)一個(gè)節(jié)點(diǎn)里需要的信息的詳細(xì)描述。
比如節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)面的標(biāo)題名稱,數(shù)據(jù)列表需要從哪個(gè)表(視圖)里提取數(shù)據(jù),排序字段是什么,默認(rèn)的查詢條件(限制條件)是什么,需要往哪個(gè)表里添加數(shù)據(jù),要修改、刪除哪個(gè)表的數(shù)據(jù)等。
總之這里放的是“一對(duì)一性質(zhì)”的記錄。而像一個(gè)數(shù)據(jù)列表里面需要哪些字段(包括字段的顯示方式),這個(gè)就屬于“一對(duì)多性質(zhì)”的記錄了,這樣的單獨(dú)做一個(gè)表表示。也就是下面要介紹的幾個(gè)表。
?
Manage_ButtonBar(功能節(jié)點(diǎn)里的功能按鈕)
記錄一個(gè)列表頁(yè)面需要哪些功能按鈕,比如添加、修改、刪除、按條件查詢等。這些按鈕完全是自定義的,每一個(gè)按鈕(記錄)只能用在一個(gè)列表頁(yè)面里,不能出現(xiàn)在多個(gè)列表頁(yè)面。這樣處理似乎比較啰嗦和浪費(fèi),不過(guò)對(duì)于“個(gè)性化”來(lái)說(shuō)卻是很必要的。
?
這三個(gè)表就是元數(shù)據(jù)的第二職責(zé): 項(xiàng)目的描述。
?
?
最后看看中間的三個(gè)表。
Manage_FunListCol(功能節(jié)點(diǎn)里的列表字段)
功能節(jié)點(diǎn)對(duì)應(yīng)的列表頁(yè)面里,數(shù)據(jù)列表里需要的字段,和顯示方式的描述。
比如居中、居右、居左,格式化,截取字符串,寬度。
?
Manage_FunFormCol(功能節(jié)點(diǎn)里的表單字段)
功能節(jié)點(diǎn)對(duì)應(yīng)的表單頁(yè)面里,表單需要的字段,和表單布局的一些描述。
比如合并行、字段的說(shuō)明信息等。
?
Manage_FunFindCol(功能節(jié)點(diǎn)里的查詢字段)
功能節(jié)點(diǎn)對(duì)應(yīng)的列表頁(yè)面里,需要的查詢條件(字段),和查詢方式、布局方式。
比如包含、等于、在…之間等。
?
這三個(gè)表可以看做是 項(xiàng)目和數(shù)據(jù)庫(kù)的關(guān)系 了。
?
元數(shù)據(jù)的信息就是保存在這幾個(gè)表里面了。
?
如果您想下載PD文檔看看的話,可以到這里來(lái):
http://www.cnblogs.com/jyk/archive/2009/10/28/1591680.html
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

