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

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

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

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

同一节点下的排序

【示例】

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏圣杰的专栏

Asp.net mvc 知多少(四)

本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想...

2239
来自专栏王磊的博客

高拍仪拍照SDK开发(良田影像S300L|S500L)

高拍仪拍照SDK开发下载地址:点击下载 本SDK适用于:良田影像S300L|S500L 高拍仪如图: ? SDN开发包安装之后找到安装目录,如图: ? ? 大家...

5128
来自专栏移动开发之家

Flutter完整开发实战详解(二、 快速开发实战篇)

 作为系列文章的第二篇,继《Flutter完整开发实战详解(一、Dart语言和Flutter基础)》之后,本篇将为你着重展示:如何搭建一个通用的Flutter ...

1.1K3
来自专栏debugeeker的专栏

xss渗透试验(3)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhina/article/detai...

901
来自专栏IMWeb前端团队

react组件性能优化探索实践

React本身就非常关注性能,其提供的虚拟DOM搭配上Diff算法,实现对DOM操作最小粒度的改变也是非常的高效。然而其组件渲染机制,也决定了在对组件进行更新时...

2557
来自专栏一个会写诗的程序员的博客

h5中performance.timing轻松获取网页各个数据 如dom加载时间 渲染时长 加载完触发时间

在控制台中输入window.performance.timing(html5的属性);

7201
来自专栏游戏杂谈

Flex + XML的图片轮显

逻辑部分与JavaScript有些类似,在解析XML时,单独写了一个as类来处理,btn的外观使用了CSS进行控制,资源全部放在名为assets文件夹目录下,工...

721
来自专栏施炯的IoT开发专栏

《101 Windows Phone 7 Apps》读书笔记-TODO LIST

课程内容 ØPivot控件 ØContext Menu ØData Contract Attributes     TODO List使得我们能够快速、简单并...

1746
来自专栏跟着阿笨一起玩NET

jQuery的编码标准和最佳实践

不知道在哪里看到了这篇关于jQuery编码的文章,挺实用的,恰好最近在研究jQuery的基础知识,今天打开收藏夹来翻译一下,原文的英语不难,但是内容很实用,可能...

672
来自专栏自动化测试实战

接口测试基础——第5篇xlrd模块

4286

扫码关注云+社区

领取腾讯云代金券