天天看點

【自然架構】中繼資料的資料庫結構的詳細說明和示例(一):項目描述部分

<a href="http://www.cnblogs.com/jyk/archive/2010/02/21/1670239.html" target="_blank">【自然架構】PowerDesigner 格式的中繼資料的表結構</a>

 1、 Manage_Function(節點資訊)

  

字段名

中文名

類型

大小

預設值

說明

FunctionID

節點ID

int

4

1

主鍵

ParentID

父節點ID

員工姓名

ParentIDPath

父節點ID的路徑

nvarchar

30

_

添加、修改時使用

NoteTitle

節點名稱

100

PowerMark

權限辨別

50

一般情況下等于FunctionID

NoteLevel

級數

第幾級節點

IsShowNote

節點是否顯示

bit

功能節點裡面是否顯示

IsShowPower

角色是否顯示

角色選擇是否顯示

Sort

排序

排序。全部節點的總排序

WebURL

網址

打開網頁的網址

Target

目标

10

    這個表就是中繼資料的“支柱”了。記錄了一個項目裡都有哪些功能,功能對應的頁面,功能的分級,權限辨別等。線上示範的那個Demo為例,表裡的資料如下圖:

【自然架構】中繼資料的資料庫結構的詳細說明和示例(一):項目描述部分

為了便于檢視,用了一個SQL語句美化了一下

SELECT TOP 100 PERCENT FunctionID, NoteLevel, IsShowNote,

      REPLACE(SPACE(NoteLevel), ' ', ' ') + NoteTitle AS NoteTitle,

      ParentIDPath + ',' + CAST(FunctionID AS nvarchar(5)) AS ParentIDPath, Sort, WebURL,

      Target

FROM dbo.Manage_Function

ORDER BY Sort

2、 Manage_Function_Info (節點的詳細資訊)

FunctionTitle

清單标題

TableID_List

清單用的表名

清單用的表名、視圖名

選擇表

做選項用。資料庫裡不用設定這個字段

ForeignColumnID

外鍵的字段ID

外鍵的字段ID,從表的清單的時候用,作為過濾條件

SQLKindID

分頁算法

PKColumnID

主鍵名

ShowColumns

顯示的字段

*

OrderColumns

排序字段

PageSize

一頁記錄數

20

QueryAlways

固定的查詢條件

300

Query

第一次的查詢條件

NaviCount

頁号數量

TableIDs_Add

添加資料用表

添加資料用的表,如果是多個表的話主表在前。必須是一對一的表,且從表的外鍵名和主表的主鍵名一緻。

TableIDs_Update

修改資料用表

修改資料用表的表。必須是一對一的表,且從表的外鍵名和主表的主鍵名一緻。

TableID_View

檢視資料用表

檢視資料用的表或者視圖

TableID_Delete

删除資料用表

DelKindID

删除方式

外鍵,關聯删除方式

RepeatColumnsForm

表單列數

表單控件的列數

RepeatColumnsFind

查詢列數

查詢控件的列數

這個表裡的字段比較多,主要是記錄一些“一對一性質”的資訊,比如頁面的名稱、表單的列數、查詢的列數、分頁控件需要的屬性(表名、排序字段等)、添加資料的表、修改資料的表等。

以前涉及到表名、字段名的地方是直接寫的名稱,現在改成了使用 主鍵進行關聯,是以在下面的執行個體裡面,您會看到一大堆的數字,這些都是關聯到Manage_Table或者Manage_Columns表的。用關聯的方式強制,這樣不容易出現表名、字段名寫錯的情況了。

【自然架構】中繼資料的資料庫結構的詳細說明和示例(一):項目描述部分

3、Manage_ButtonBar(清單裡的按鈕)

ButtonID

序号

外鍵,關聯節點

BtnTitle

按鈕标題

按鈕上面顯示的文字

BtnID

按鈕ID

按鈕的ID

BtnTypeID

按鈕類型

URL

打開的網址

240

單擊按鈕後打開的網頁

WebWidth

打開視窗寬度

WebHeight

打開視窗高度

IsNeedSelect

是否需要選中資料

0:不需要;1:需要

同一節點下的排序

這個表是記錄清單頁面的裡操作按鈕的,比如添加、修改、删除等。一個按鈕就是一條記錄,一個按鈕隻能在一個節點的清單裡,不能在多個清單裡出現。即使兩個清單頁面都有一個叫做“添加”的按鈕也不能共用一個。

也許您會覺着這麼做有點浪費,但是從綜合的角度來看,這麼做是有利于管理和維護的。對于權限判斷也是很有幫助的。

下圖就是“角色管理”節點裡的操作按鈕的記錄(Function=101的記錄)

【自然架構】中繼資料的資料庫結構的詳細說明和示例(一):項目描述部分