不写代码自动实现类的增删改查列选树(一、实现思想)

数据库设计:
用户User ManyToOne  组织Org
组织Org  ManyToMany 角色Role
OrgRole组织下的角色 ManyToMany 用户User

类Bean OneToMany 属性Property
角色Role ManyToMany 功能Permission(url)
功能Permission OneToMany 表现performance (进入同一个URL看到不同的表现形式)
角色Role ManyToMany 表现performance
表现performance OneToMany 表现属性PerformanceProperty(用于不同角色需要看到不同的字段)
表现performance OneToMany 引用Quote (一个表现下引用其外键相关的表现,如:一个Org下带一个User的List)

功能Permission OneToMany 数据过滤Filter (控制数据可见性,控制可编辑的数据条件、可增加的数据基础条件)
数据过滤Filter OneToMany 数据过滤属性FilterProperty(根据不同的字段以及字段对应的值做内部级的数据过滤)
角色Role ManyToMany 数据过滤Filter

类Bean OneToMany 状态BeanSTATE
表现performance OneToOne 状态BeanSTATE (同一个类在不同状态下所得的字段editshowhide不同,用于流程控制)


权限过滤器:
loginUser -> MyRoles 
loginUrl -> the Permission
MyRole contain Permission? get the Max Role,get role's org
the role contain the permission's Performance & Filter? get performance & filter

功能:
has performance:
we have bean(是哪个类)\role(以什么权限)\org(以哪个组织的名义)\performance(显示、编辑或者隐藏什么字段)\filter(数据过滤条件)\dowhat(dowhat set rules in url,是列表、增加、详细、修改、删除、选择、树?)






页面中的数据是以什么方式存在、用什么控件、控件引用了什么url、是否必须、可填入的形式等都在此定义


url都是按照一定的规则来定义的,减少配置量。
一个功能对应一个url,但是可以有多个不同参数来做不同的事,这些事对应的角色是一致的,可以减少配置。







猜你喜欢

转载自suda144.iteye.com/blog/2194877
今日推荐