接上篇内容描述谈谈平台设计思路及方法。前一篇简单的介绍了一下总体的实现思路。那从本节开始开始说明如何引入数据库表视图等,由于咱们无论作什么项目软件,设计的时候能直接将页面控件绑定到指定的字段,那样后续的操做就会很方便。至于实现的方法,有不少种,每一个人可能有各自不一样的思路,我不去评价别人是怎么作的,仅说说我本身的实现思路,由于这个思路在后续的实际使用中,通过不少大型项目的验证,的确是可行的,但并不表明此实现的方式是最好、最完善的,确定有不少不足之处,说实话,技术有限,不可能知足实现全部人的想法。前端
数据集合:引入此概念,目的是实现咱们在数据库中的表、视图的映射,为何叫映射呢,由于它只是起到一个中转做用,自身不实现什么其余的功能。数据库
由于是设计开发工具,那么使用者确定包含不一样层次的开发者,例如刚毕业的学生等等,一套软件项目通常都是通过多我的员协同分工来实现的,那咱们确定要对这些分工作一个规则的制定,让全部参与的人员都能明白前一步操做人员设计的意图和含义,这样就省去了很长时间的理解消化。后端
表、视图在数据库中是能够直接创建完成,可是我想在页面设计中使用,那么确定须要从数据库中获取表或视图来绑定使用。通常来讲我直接调用表、视图不行吗?不是也能实现这样的功能吗?答案是确定的,能够那么作,可是若是表是A员工作的,B员工设计页面,他须要调用表,可是表结构的字段直接查看是没法知道是什么含义的,某个控件的值应该保存到哪一个字段中,还有若是咱们将表名直接暴露在WEB前端,那么此风险系数是否是很大呢?为了解决这样的问题,能够提出一个新的概念,数据集合,这个数据集合与咱们说的其余的数据集合不是一个含义,只是名字相同。
安全
实现目的: (先上几张实现的图片用于说明)
工具
一、将数据库表或视图直接创建一个映射,生成一个数据集合记录,关联上表名,通常但愿数据集合中文描述标注为表名的中文含义,性能
同时对表或视图中的字段也标注上中文,由于咱们大部分人仍是习惯看中文,这样能一目了然。方便使用者查看。开发工具
二、隔离真实的表名或视图名,实现变相的替换,能够先解决前端WEB不容许直接操做表或视图,下降安全风险,但这样就牺牲了一点编码
点的性能,由于后台进行与数据库交互时,就须要根据配置名来获取真实的表、视图名,再来执行实际的操做,这样就多了一步。为了加密
安全,我认为这点性能的牺牲是值得的。spa
惟一遗憾:我当初也想将字段进行别名化,这样进一步增强安全系数,可是当初设计时不少同事说那样创建数据源和后台处理时就麻烦了,
每次须要中转遍历字段对应才能处理,虽然之前没这样实现,我相信后续还会继续补充上去。
三、实现经过视图来进行数据保存的功能。咱们在开发ERP等项目时,常常会碰到 例如物料信息,在真实的出库业务中,可能只保存物料编码、
批次、计量单位编码、数量等信息,可是在页面显示中还必需要显示出物料名称、规格型号等其余不保存的信息,为了解决这样的问题,我
想能够经过数据集合的保存表名来进行处理,这样不就即解决了显示问题,又解决了保存问题。而且设计操做就便捷了。
四、实现SQL(存储过程等) 语句创建数据源(此功能当初设想了,可是到目前来讲尚未好的模式来实现,由于不仅仅创建数据源,还会关联到
的Tree 、Grid 、Combobox 、List、输入感应等后续根据数据集合取值问题,后续我相信确定会有办法来处理,这样就能解决数据集合多样
化创建的问题了)
五、实现页面数据增、删、改、查等的中转载体,因此的数据的通用的存储,所有采用依据数据集合,这样能从一个源头来进行控制。
六、实现页面设计中,页面数据保存查询权限过滤条件设计的载体,例如:目录树、下拉选择、输入感应、数据列表等等,
由于既然是经过JS 来执行,那么前端设置的条件能够经过JS来跟踪到,可是咱们能够在后端设计时,针对集合设置权限条件
这样WEB前端就永远不会获取到我设计端设计时候的权限条件,那样就有效的控制数据的横向或纵向权限。
七、快速定义列表中的查询字段,这样便于设计人员针对不一样的列表,只要勾选一下,就能够快速增长了
此字段的组合查询。
经过以上几个要点的描述,那么咱们就将数据集合须要实现的功能描述出来了,下面就是咱们本身经过掌握技术,来分别实现。
只要实现的方法其实很简单,咱们是经过C/S来实现的,那么就创建一个数据集合设计页面,经过同步功能将字段显示出来,分别
填写上对应的中文标题,执行保存。
我建议每一个集合保存后,若是要让WEB页面调用时候,请将信息发布保存为JSON格式字符串,最好能加密,这样前端WEB只
有解密后才能获取到。至于WEB端组合查询页面的设计与制做在后续的页面设计中进行叙述。