【自然框架】之通用权限(五):项目描述表组

 

      继续,这是第五章了。我发现了,写文章比写程序还要有难度。

 

通用权限想要写的文章目录:(这是第五章)

  

1、 简介、数据库的总体结构
2、 介绍人员表组
3、 介绍组织结构表组
4、 介绍角色表组
5、 介绍“项目自我描述表组”
6、 权限到节点
7、 权限到按钮
8、 权限到列表(表单、查询)
9、 权限的验证
10、 资源方面的权限
11、 角色管理的程序(给客户用的)
12、 权限下放
13、 个性化设置

A、 【自然框架】之通用权限(外传):杂谈

 

 

 

 

项目描述表组

 

      这里的表比较多,主要分为两个部分,一个是“字典信息”,这里就不介绍了,感兴趣的话,请下载数据库说明文档;另一个就是装载配置信息的表。

      项目描述,顾名思义就是想要用数据(记录)的形式来描述一个项目,当然不能所有的事情都能用数据的形式描述出来,只有和数据相关的地方才行。最初的目的是给我的几个自定义控件赋值用的,比如表格控件、表单控件、查询控件等,他们都需要很多的信息给他们的属性赋值,如果直接在代码里面写的话,那还不如直接拖拽控件简单呢,所以我就把需要的属性都放在了“表”里面。一开始并没有想到权限,后来才发现,只要修改一下SQL语句,就可以达到“权限”的目的,包括资源权限。同理,也可以达到“个性化设置”的效果。所以我感觉权限、个性化设置只是自然架构的一个副产品。当然你也可以说,通用权限和我的自定义控件绑定的太紧了,这个也没有办法,总之,先实现了需求再说,然后再想办法解决侵入性的问题。

      为了便于大家的理解,在说明这些表的时候举一个举一个具体的例子吧。SQL Server 2000里面有一个 sysobjects 表,表里面有一个xtype字段,这个字段是说明类型的,比如xtype=’U ’,表示用户表,xtype=’V ’,表示视图。在网上查了一下,发现这个xtype字段至少有16种值,我做了一个表“Manage_Base_TableType”来记录这个信息。所以我这里就以这个表为例,说一下项目描述表组里的几个表的作用。

【Manage_Base_TableType的字段和数据】

 

【页面效果】

 

 

项目描述表的说明

      1、Manage_Function,功能节点表。这里记录了一个项目的所有的功能节点。通过这个表就可以看到这个项目可以做什么。很有项目描述的味道吧。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
FunctionID 节点ID int 4 1 0 主键
ParentID 父节点ID int 4 1 0 员工姓名
ParentIDPath 父节点ID的路径 nvarchar 30 _ 0 父节点ID的路径
NoteTitle 节点名称 nvarchar 100 _ 0 节点名称
PowerMark 权限标识 nvarchar 50 _ 0 一般情况下等于FunctionID
NoteLevel 级数 int 4 1 0 第几级节点
IsShowNote 节点是否显示 bit 1 1 0 功能节点里面是否显示
IsShowPower 角色是否显示 bit 1 1 0 角色选择是否显示
Sort 排序 int 4 1 0 排序
WebURL 网址 nvarchar 100 _ 0 打开网页的网址
Target 目标 nvarchar 10 _ 0 目标

 

【示例】

 

      这个表是权限到节点的关键表。下一章会详细说明,其实大家应该也知道了。

      2、Manage_Table,记录数据库里的表的信息。他主要是区分一个字段是属于哪个表的。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
TableID int 4 1 0 主键
TableName 表名 nvarchar 60 _ 0 表名
IDColumn 主键名 nvarchar 30 _ 0 主键名
Type 类型 char 2 _ 0 类型
Content 表说明 nvarchar 50 _ 0 表说明
ExcelTableName 工作表名称 nvarchar 50 _ 0 用于修改Excel里面的信息

 

【示例】

 

      3、Manage_Columns,记录数据库里的表的字段的信息。在原有的基础上(字段名、字段类型、大小等),又增加了一些UI需要的信息,比如控件类型、验证方式等,就是说这个字段在表单里面表现为什么控件,这些是表单控件需要的信息。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
ColumnID 字段标识 int 4 1 0 主键
TableID 表ID int 4 1 0 外键
ColSysName 字段名称 nvarchar 50 _ 0 数据库里的名称
ColName 对外名称 nvarchar 50 _ 0 显示给用户看的名称
ColType 字段类型 nvarchar 20 _ 0 字段类型
ColSize 字段大小 int 4 1 0 字段大小
ControlKindID 控件类型 int 4 1 0 外键
CheckKindID 验证类型 int 4 1 0 外键
CheckUserDefined 自定义验证 nvarchar 50 _ 0 自行定义验证的方式,通过正则表达式实现。
ControlInfo 控件描述 nvarchar 500 _ 0 描述控件
ControlID 控件ID nvarchar 50 _ 0 在页面里的控件ID

 

 

【示例】

 

 

      4、Manage_Function_Info,这里记录了分页控件需要的属性,还有节点的添加、修改、删除时需要的表。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
FunctionID 节点ID int 4 1 0 主键
FunctionTitle 列表标题 nvarchar 30 _ 0 列表标题
TableNameList 列表用的表名 nvarchar 100 _ 0 列表用的表名
TableNameExcel 导出Excel用的表名 nvarchar 100 _ 0 导出Excel用的表名
ForeignColumn 外键名 nvarchar 50 _ 0 如果是从表的话,可以填写外键表,用于显示数据时候的过滤条件
SQLKindID 分页算法 int 4 0 0 分页算法
PKColumn 主键名 nvarchar 50 _ 0 主键名
ShowColumns 显示的字段 nvarchar 500 * 0 显示的字段
OrderColumns 排序字段 nvarchar 30 _ 0 排序字段
PageSize 一页记录数 int 4 20 0 一页记录数
QueryAlways 固定的查询条件 nvarchar 300 _ 0 固定的查询条件
Query 第一次的查询条件 nvarchar 300 _ 0 第一次的查询条件
NaviCount 页号数量 int 4 10 0 页号数量
TableNameAdd 添加数据用表 nvarchar 100 _ 0 添加数据用表
TableNameUpdate 修改数据用表 nvarchar 100 _ 0 修改数据用表
TableNameView 查看数据用表 nvarchar 100 _ 0 查看数据用表
TableNameDel 删除数据用表 nvarchar 100 _ 0 删除数据用表

 

 

      5、Manage_FunFindCol,记录一个节点里面的查询控件需要的字段,又增加了查询类型的字段。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
FindColID 序号 int 4 1 0 主键
FunctionID 节点ID int 4 1 0 外键,关联节点
ColumnID 字段ID int 4 1 0 外键,关联字段
Sort 排序 int 4 1 0 同一节点下的排序
FindKindID 查询方式 int 4 1 0 外键,查询方式
DefaultValue 默认值 nvarchar 50 _ 0 第一次显示查询的时候的字段的默认查询关键字
clearTDStart 去掉开头的TD int 4 1 0 合并到上一个TD,设置空格
clearTDEnd 去掉结尾的TD int 4 1 0 接收下一个TD
TDColspan TD数 int 4 1 0 一个字段占用多少TD

 

【示例】

 

      6、Manage_FunFormCol,记录一个节点里面的表单控件需要的字段,增加了提示信息、控件状态等字段。可以绘制表单
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
FormColID 序号 int 4 1 0 主键
FunctionID 节点ID int 4 1 0 外键,关联节点
ColumnID 字段ID int 4 1 0 外键,关联字段
Sort 排序 int 4 1 0 同一节点下的排序
ColHelp 提示信息 nvarchar 100 _ 0 出现在控件旁的提示信息,比如“用户名必须4-20个字符”
HelpStation 提示信息的位置 int 4 1 0 1:不显示;2:左面;3:右面
DefaultValue 默认值 nvarchar 50 _ 0 控件的默认值
ControlState 控件状态 int 4 1 0 1:正常;2:只读;3:不可用
IsShow 是否显示 int 4 1 0 1:显示;0:不显示
ClearTDStart 去掉开头的TD int 4 0 0 合并到上一个TD,设置空格
ClearTDEnd 去掉结尾的TD int 4 0 0 接收下一个TD
TDColspan TD数 int 4 1 0 一个字段占用多少TD

 

【示例】

      7、Manage_FunListCol,记录一个节点的数据列表需要的字段。可以用这个信息绘制表格的表头。
【字段】

字段名 中文名  字段类型 大小  默认值 是否空  说明
ListColID 序号 int 4 1 0 主键
FunctionID 节点ID int 4 1 0 外键,关联节点
ColumnID 字段ID int 4 1 0 外键,关联字段
Sort 排序 int 4 1 0 同一节点下的排序
ColWidth 列宽度 int 4 0 0 TD的宽度
ColAlign 列对齐方式 nvarchar 10 left 0 TD的对齐方式
Format 格式化 nvarchar 30 _ 0 对信息进行格式化
MaxLength 最大字符数 int 4 0 0 TD里面最多显示多少字符

 

【示例】

 

      8、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 同一节点下的排序

 

【示例】

 

 

 这里先简单介绍一下表结构和里面的内容。到这里表结构的介绍就基本结束了,后面就是如何来应用了。

 

时间: 2024-09-24 07:41:59

【自然框架】之通用权限(五):项目描述表组的相关文章

【自然框架】通用权限的视频演示(一):添加角色,权限到功能节点和按钮

      写了几个关于权限的东东,好像大家都不大理解,也不太清楚我的权限到底能做什么,所以想来想去还是弄点视频吧,就是屏幕录像,这样大家看起来就方便了吧.       为了大家便于观看视频,我先说一下视频的步骤.      1.添加角色,选择角色可以使用的功能节点和按钮.      2.选择用户,就是给角色里面添加用户.      3.用用户的账号登录,查看效果.      4.修改角色可以使用的按钮,查看效果.       这里举了一个很简单的例子--新闻维护,有两个角色,一个是"新闻维护&

自然框架,拆分后的项目关系

  拆分了一下自然框架,似乎又绕回去了.以前是多个项目分开放的,有人说太分散了,还得一个个下载,麻烦.于是就做了一个解决方案,把项目都放在了一起.   现在呢,QuickPager分页控件比较完善了,有人只想看分页控件的代码,其他的不想看,东西太多了乱.想一想也是,那么就拆分一下吧.原来自定义控件都是放在一个项目里的,编译后生成一个dll,版本号也只有一个.这样版本号就很难管理了,有任何一个控件升级,整个版本号都要升级,因为就是一个版本号.这样版本号就不大够用了.所以以前的源码下载,我只写上传日

【自然框架】PowerDesigner 格式的元数据的表结构

  自然框架里的元数据 元数据的职责: 自然框架里的元数据有三个职责:描述数据库(字段.表.视图等),描述项目(功能节点.操作按钮等),项目和数据库的关系(一个列表页面里需要显示哪些字段.哪些查询条件等) 元数据的存储: 有两个存储元数据的地方,一个是数据库,另一个是实体类.   先看一下表结构图:[表结构图]   是不是比较眼熟,这个在以前的通用权限的地方已经介绍过了,只不过那个没有用PD画出来. 先看右面的两个表: Manage_Columns(字段描述表). 这个表主要是存放字段的说明的,

【自然框架】 权限 的视频演示(二): 权限到字段、权限到记录

      继续.这里演示权限到字段和权限到记录.            权限到字段有两种安全级别,      1.低安全级别.有些项目不需要做到控制每一个字段是否显示,那么就可以采用这种级别.低安全级别就是:如果一个节点里面没有设置可以访问哪些字段,那么就默认为不需要做到控制字段的程度,就是说节点里的字段都是可以访问的.这么做是为了操作方便.       2.高安全级别.有些项目要求非常严格,要严格控制每一个字段是否可以访问,那么就可以采用这种安全级别.高安全级别:如果一个节点里面没有设置可以

【自然框架 免费视频】资源角色的思路介绍(整理了一下以前帖子的目录,请刷新)

  请大家不要忘记点推荐!   源码下载: 自然框架的源代码.Demo.数据库.配置信息管理程序下载 这里介绍一下资源权限的思路,我们来设计一个场景,这个场景大家比较常见的,也是我遇到过的.我们来通过这个简单的实例,来看看资源权限可以如何实现. 资源权限,就是同样的一个表,一些人可以看到一部分信息,另一些人可以看到另一部分信息,还有些人可以看到全部信息,还有--.总之就是根据员工的权力,进行适当的筛选.可以看到一部分,或者可以看到全部.一级可以做什么样的操作(增删改查,导出等).   这里先只介

【自然框架】之通用权限(四):角色表组

        继续,这是第四章了.这里涉及到了资源方面的,不过有点绕,所以这里先介绍一下表结构,在后面的章节里面,再举例子详细介绍. 通用权限想要写的文章目录:(这是第四章)   1. 简介.数据库的总体结构2. 介绍人员表组3. 介绍组织结构表组4. 介绍角色表组5. 介绍"项目自我描述表组"6. 权限到节点7. 权限到按钮8. 权限到列表(表单.查询)9. 权限的验证10. 资源方面的权限11. 角色管理的程序(给客户用的)12. 权限下放13. 个性化设置 A.. [自然框架]

【自然框架】之通用权限(二):人员表组

        继续,这是第二章了.本来想在这一章里面介绍三个表组来着,但是我有点写不好的感觉,还是多分几章吧,这一章就只介绍人员表组.第二章到第五章主要是介绍表结构.我是习惯使用Excel来设计表,一开始的时候只能记录表名.字段名.字段类型.字段说明等信息,但是一直没能找到如何使用Excel来体现出来表之间的关系.前一阵子(好像是去年)突然想到了可以使用"图表"+图形(比如箭头)的方式来做表关系,第一章里的那几个图就是这么弄出来的,看着还凑合吧.       至于为什么不用Power

【自然框架】之通用权限:用PowerDesigner重新设计了一下数据库,有ER图和表关系图

      好像以前做的那个数据库设计大家都没太看懂,究其原因似乎大家都比较习惯使用PowerDesinger来设计.而我用Excel画出来的图大家看着特别别扭,而且还没有总体的图,也没有ER图,所以大家也就没有心情看了吧.呵呵.      PowerDesinger学习了一下,感谢Hayden Han 写的<PowerDesigner使用教程 -- 概念数据模型 >,通过这个文章学会了如何使用PowerDesinger来画ER图,这回画出来的应该是ER图了吧,呵呵.除了ER图,还有表关联图,

【自然框架】之通用权限(八):权限到字段(列表、表单、查询)

   通用权限想要写的文章目录:(这是第八章)   1. 简介.数据库的总体结构2. 介绍人员表组3. 介绍组织结构表组4. 介绍角色表组5. 介绍"项目自我描述表组"6. 权限到节点7. 权限到按钮8. 权限到列表(表单.查询)9. 权限的验证10. 资源方面的权限11. 角色管理的程序(给客户用的)12. 权限下放13. 个性化设置 A. [自然框架]之通用权限(外传):杂谈     列表 myGrid 先说一下myGrid,我会根据Manage_FunListCol表和Manag