前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【自然框架】之通用权限(五):项目描述表组

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

作者头像
用户1174620
发布2018-02-08 16:04:56
9130
发布2018-02-08 16:04:56
举报
文章被收录于专栏:更流畅、简洁的软件开发方式

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

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

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

同一节点下的排序

【示例】

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2009-06-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档