?
自然框架里的元數據
元數據的職責:
自然框架里的元數據有三個職責:描述數據庫(字段、表、視圖等),描述項目(功能節點、操作按鈕等),項目和數據庫的關系(一個列表頁面里需要顯示哪些字段、哪些查詢條件等)
元數據的存儲:
有兩個存儲元數據的地方,一個是數據庫,另一個是實體類。
?
先看一下表結構圖:
【表結構圖】
?
是不是比較眼熟,這個在以前的通用權限的地方已經介紹過了,只不過那個沒有用PD畫出來。
先看右面的兩個表;
Manage_Columns(字段描述表)。
這個表主要是存放字段的說明的,比如字段名稱,用戶看的名稱,字段大小,字段類型等。(剩下的幾個字段最后再說)。
這個表的目的就是要給字段做一個描述,也可以說是一份記錄,記錄這個項目里都有哪些字段。把字段統一管理起來。
?
Manage_Table(表的描述)
這個表主要是對表的描述,記錄一下項目里都有哪些表,以及表的說明。除了記錄表之外,還可以記錄項目里有哪些視圖、存儲過程、自定義函數等。當然也可以記錄觸發器,不過我還是建議盡量不要用觸發器。存儲過程也應該用在刀刃上,而不是導出亂用。在自然框架里面是比較依賴視圖的,多表關聯都是先寫成視圖的形式的。所以表、視圖、存儲過程等都是需要記錄下來的,并且還需要記錄一下他們的關系。比如說一個視圖里包含哪些表。一個存儲過程涉及到了哪些表。
?
這兩個表就是元數據的第一個職責: 描述數據庫方面的內容。
?
我們再看左面的三個表
Manage_Function(項目里的功能節點)
所謂的功能節點,就是大功能,小功能,節點,菜單。往小了說就是一個增刪改查的基本頁面。往大了說就是一個“分組”。
目的就是要記錄一個項目里到底有哪些功能,而這個功能的記錄也是比較詳細的。比如:新聞管理、企業信息、產品信息、添加訂單、請假、批假等。
?
Manage_Function_Info(功能節點的詳細信息)
這個表是對一個節點里需要的信息的詳細描述。
比如節點對應的頁面的標題名稱,數據列表需要從哪個表(視圖)里提取數據,排序字段是什么,默認的查詢條件(限制條件)是什么,需要往哪個表里添加數據,要修改、刪除哪個表的數據等。
總之這里放的是“一對一性質”的記錄。而像一個數據列表里面需要哪些字段(包括字段的顯示方式),這個就屬于“一對多性質”的記錄了,這樣的單獨做一個表表示。也就是下面要介紹的幾個表。
?
Manage_ButtonBar(功能節點里的功能按鈕)
記錄一個列表頁面需要哪些功能按鈕,比如添加、修改、刪除、按條件查詢等。這些按鈕完全是自定義的,每一個按鈕(記錄)只能用在一個列表頁面里,不能出現在多個列表頁面。這樣處理似乎比較啰嗦和浪費,不過對于“個性化”來說卻是很必要的。
?
這三個表就是元數據的第二職責: 項目的描述。
?
?
最后看看中間的三個表。
Manage_FunListCol(功能節點里的列表字段)
功能節點對應的列表頁面里,數據列表里需要的字段,和顯示方式的描述。
比如居中、居右、居左,格式化,截取字符串,寬度。
?
Manage_FunFormCol(功能節點里的表單字段)
功能節點對應的表單頁面里,表單需要的字段,和表單布局的一些描述。
比如合并行、字段的說明信息等。
?
Manage_FunFindCol(功能節點里的查詢字段)
功能節點對應的列表頁面里,需要的查詢條件(字段),和查詢方式、布局方式。
比如包含、等于、在…之間等。
?
這三個表可以看做是 項目和數據庫的關系 了。
?
元數據的信息就是保存在這幾個表里面了。
?
如果您想下載PD文檔看看的話,可以到這里來:
http://www.cnblogs.com/jyk/archive/2009/10/28/1591680.html
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
