自然框架在线演示: http://pthuanyu.com/
【自然框架】PowerDesigner 格式的元数据的表结构
自然框架的源码、Demo、数据库、说明文档的下载,还是老地方:自然框架的源代码、Demo、数据库、配置信息管理程序下载(2010.02.21更新)
1、 Manage_Function(节点信息)
字段名 | 中文名 | 类型 | 大小 | 默认值 | 说明 |
---|---|---|---|---|---|
FunctionID | 节点ID | int | 4 | 1 | 主键 |
ParentID | 父节点ID | int | 4 | 1 | 员工姓名 |
ParentIDPath | 父节点ID的路径 | nvarchar | 30 | _ | 添加、修改时使用 |
NoteTitle | 节点名称 | nvarchar | 100 | _ | 节点名称 |
PowerMark | 权限标识 | nvarchar | 50 | _ | 一般情况下等于FunctionID |
NoteLevel | 级数 | int | 4 | 1 | 第几级节点 |
IsShowNote | 节点是否显示 | bit | 1 | 1 | 功能节点里面是否显示 |
IsShowPower | 角色是否显示 | bit | 1 | 1 | 角色选择是否显示 |
Sort | 排序 | int | 4 | 1 | 排序。全部节点的总排序 |
WebURL | 网址 | nvarchar | 100 | _ | 打开网页的网址 |
Target | 目标 | nvarchar | 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 (节点的详细信息)
字段名 | 中文名 | 类型 | 大小 | 默认值 | 说明 |
---|---|---|---|---|---|
FunctionID | 节点ID | int | 4 | 1 | 主键 |
FunctionTitle | 列表标题 | nvarchar | 30 | _ | 列表标题 |
TableID_List | 列表用的表名 | int | 4 | _ | 列表用的表名、视图名 |
TableID_List | 选择表 | int | 4 | _ | 做选项用。数据库里不用设置这个字段 |
ForeignColumnID | 外键的字段ID | int | 4 | 1 | 外键的字段ID,从表的列表的时候用,作为过滤条件 |
SQLKindID | 分页算法 | int | 4 | 0 | 分页算法 |
PKColumnID | 主键名 | int | 4 | _ | 主键名 |
ShowColumns | 显示的字段 | nvarchar | 50 | * | 显示的字段 |
OrderColumns | 排序字段 | nvarchar | 50 | _ | 排序字段 |
PageSize | 一页记录数 | int | 4 | 20 | 一页记录数 |
QueryAlways | 固定的查询条件 | nvarchar | 300 | _ | 固定的查询条件 |
Query | 第一次的查询条件 | nvarchar | 300 | _ | 第一次的查询条件 |
NaviCount | 页号数量 | int | 4 | 10 | 页号数量 |
TableIDs_Add | 添加数据用表 | nvarchar | 100 | _ | 添加数据用的表,如果是多个表的话主表在前。必须是一对一的表,且从表的外键名和主表的主键名一致。 |
TableIDs_Update | 修改数据用表 | nvarchar | 100 | _ | 修改数据用表的表。必须是一对一的表,且从表的外键名和主表的主键名一致。 |
TableID_View | 查看数据用表 | int | 4 | 0 | 查看数据用的表或者视图 |
TableID_Delete | 删除数据用表 | int | 4 | 0 | 删除数据用表 |
DelKindID | 删除方式 | int | 4 | 1 | 外键,关联删除方式 |
RepeatColumnsForm | 表单列数 | int | 4 | 1 | 表单控件的列数 |
RepeatColumnsFind | 查询列数 | int | 4 | 4 | 查询控件的列数 |
这个表里的字段比较多,主要是记录一些“一对一性质”的信息,比如页面的名称、表单的列数、查询的列数、分页控件需要的属性(表名、排序字段等)、添加数据的表、修改数据的表等。
以前涉及到表名、字段名的地方是直接写的名称,现在改成了使用 主键进行关联,所以在下面的实例里面,您会看到一大堆的数字,这些都是关联到Manage_Table或者Manage_Columns表的。用关联的方式强制,这样不容易出现表名、字段名写错的情况了。
3、Manage_ButtonBar(列表里的按钮)
ButtonID | 序号 | int | 4 | 1 | 0 | 主键 |
FunctionID | 节点ID | int | 4 | 1 | 0 | 外键,关联节点 |
BtnTitle | 按钮标题 | nvarchar | 50 | _ | 0 | 按钮上面显示的文字 |
BtnID | 按钮ID | nvarchar | 50 | _ | 0 | 按钮的ID |
BtnTypeID | 按钮类型 | int | 4 | 1 | 0 | 按钮类型 |
URL | 打开的网址 | nvarchar | 240 | _ | 0 | 单击按钮后打开的网页 |
WebWidth | 打开窗口宽度 | int | 4 | 1 | 0 | 打开窗口宽度 |
WebHeight | 打开窗口高度 | int | 4 | 1 | 0 | 打开窗口高度 |
IsNeedSelect | 是否需要选中数据 | int | 4 | 0 | 0 | 0:不需要;1:需要 |
Sort | 排序 | int | 4 | 1 | 0 | 同一节点下的排序 |
这个表是记录列表页面的里操作按钮的,比如添加、修改、删除等。一个按钮就是一条记录,一个按钮只能在一个节点的列表里,不能在多个列表里出现。即使两个列表页面都有一个叫做“添加”的按钮也不能共用一个。
也许您会觉着这么做有点浪费,但是从综合的角度来看,这么做是有利于管理和维护的。对于权限判断也是很有帮助的。
下图就是“角色管理”节点里的操作按钮的记录(Function=101的记录)