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


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

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

      


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

    【示例】

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

  • 相关阅读:
    #Laravel笔记# 使用SMTP发送邮件功能
    #Laravel笔记# 监听事件
    idea 常见问题
    python常见函数汇总
    双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践
    机器学习算法GBDT
    Hive表数据同步到es
    目标检测资料
    zeppelin的介绍与使用
    Java汉字获取拼音、笔划、偏旁部首
  • 原文地址:https://www.cnblogs.com/jyk/p/1499582.html
Copyright © 2020-2023  润新知