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

本文详细介绍了一个通用权限系统的数据库设计,包括功能节点表、表信息表、字段信息表等关键组件,以及如何通过这些组件实现权限控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

 

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

  


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节点IDint410主键
ParentID父节点IDint410员工姓名
ParentIDPath父节点ID的路径nvarchar30_0父节点ID的路径
NoteTitle节点名称nvarchar100_0节点名称
PowerMark权限标识nvarchar50_0一般情况下等于FunctionID
NoteLevel级数int410第几级节点
IsShowNote节点是否显示bit110功能节点里面是否显示
IsShowPower角色是否显示bit110角色选择是否显示
Sort排序int410排序
WebURL网址nvarchar100_0打开网页的网址
Target目标nvarchar10_0目标

 

【示例】

 

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

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

字段名中文名 字段类型大小 默认值是否空 说明
TableIDint410主键
TableName表名nvarchar60_0表名
IDColumn主键名nvarchar30_0主键名
Type类型char2_0类型
Content表说明nvarchar50_0表说明
ExcelTableName工作表名称nvarchar50_0用于修改Excel里面的信息

 

【示例】

 

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

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

 

【示例】

 

 

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

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

 

 

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

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

 

【示例】

 

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

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

 

【示例】

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

字段名中文名 字段类型大小 默认值是否空 说明
ListColID序号int410主键
FunctionID节点IDint410外键,关联节点
ColumnID字段IDint410外键,关联字段
Sort排序int410同一节点下的排序
ColWidth列宽度int400TD的宽度
ColAlign列对齐方式nvarchar10left0TD的对齐方式
Format格式化nvarchar30_0对信息进行格式化
MaxLength最大字符数int400TD里面最多显示多少字符

 

【示例】

 

      8、Manage_ButtonBar,记录了一个节点有哪些功能按钮,比如添加、修改、删除、查询等。可以添加任意功能的按钮。可以绘制列表页面里的按钮。
【字段】

字段名中文名 字段类型大小 默认值是否空 说明
ButtonID序号int410主键
FunctionID节点IDint410外键,关联节点
BtnTitle按钮标题nvarchar50_0按钮上面显示的文字
BtnID按钮IDnvarchar50_0按钮的ID
BtnTypeID按钮类型int410按钮类型
URL打开的网址nvarchar240_0单击按钮后打开的网页
WebWidth打开窗口宽度int410打开窗口宽度
WebHeight打开窗口高度int410打开窗口高度
IsNeedSelect是否需要选中数据int4000:不需要;1:需要
Sort排序int410同一节点下的排序

 

【示例】

 

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值