天天看点

分享一个简单的基础数据库模型

一个程序一个系统,设计的好不好的,最终要的因素莫过于数据的架构设计。好的数据库设计不仅能缩短开发周期,其在扩展性和稳定性方面的重要性也尤为突出。

那笔者在这里分享的正是我们大多数场景需要使用到的最基础的数据库架构模型:

分享一个简单的基础数据库模型

在权限方面采用了RBAC模型设计,一个用户可以拥有多个角色,一个角色可以拥有多个权限,其中权限可以由多种体现方式,分别是:菜单,页面链接,按钮,数据。

即一个权限可以是指定能访问哪些菜单,哪些页面,哪些页面上的按钮,当然也可以是哪些数据。这种设计其优点是灵活,以多种组合的方式来实现随时调整某个角色的权限。

系统配置和用户自定义配置方面采用的均为key/value的形式,采用这种方式初衷是考虑到表的冗余和扩展性,开发者可以结合程序实现可以配置式的用户自定义配置,例如:后台可以随时增删一个配置并应用于页面,页面上无需改动,按照配置标签即可显示对应配置值。用户分组方面考虑到子分组,比如某些部门有多个子部门等情况。

补充:给角色增加两个字段:for_type,for_value这里考虑到授权的对象某些情况下不一定都直接是用户,往往我们只希望授权给某个分组或某个部门,那这个时候以下的模型或许更适用,你可以指定角色授权给某个对象,增加了一定的扩展性。

分享一个简单的基础数据库模型

总结:

当然此处模型过于简单,但笔者认为这种模型能给与用户较大的自由,可配置性较强,极大的避免了程序的硬编码,可应用场景较广。后期会整合动态表单模型和资源模型,如果您有好的意见不防在此留下您的见解。