现在的程序,很多涉及到权限这个管理问题.一稍大与政务或商务软件都会涉及许多的权限,如管理.发表.浏览.收发公告等权限.
对这个问题,在数据库上怎样实现才好呢? 【程序编程相关:昆明企业目录】 【推荐阅读:开发自己的Excell控件】我下载了一些软件,它们在数据库上实现是用字段,即每一权限设置为1个boolean或byte的字段.我分析了这种设计,优点是读取方便,如要知道某一权限,只要得到某个字段就可以了,不需要很多的程序来判断. 【扩展信息:Windows 98 第二版的关机问题】 但这种设计的缺点是:1.在维护中,需要增加或修改权限,就需要修改数据库;2.如果贪其方便,很可能会在程序很多地方用到判断一个权限的语句.如果权限改变或取消后,会在很多的地方修改代码;3.字段很长,如果有几十种权即的话,会较麻烦. 听取朋友建议后,考虑用一个字段,用01来表示是否拥有该权限,权限按位设置:100100101110110,每位代表一种权限. 考虑以后的升级等需要,应设置一些预留位.比如一家公司需要40种权限,在设计时就用100位的字串来表示,如: ·管理员: 需要12种,设置前20位 ·发表文章:需要20种,设置30位 ·工作权限:需要20种,设置30位 ...... 没有用到的权限位全部设为0,这样我们可以来解码了.不细说这位数怎样记录,这在用户管理中还是比较方便的.我主要想说一下如何读取:
这10011011101......太难读懂了,好象是个机械,一点没人味,我就想给它增加些人味 好在这c#比以前用asp强太多了,就想到了用枚举.结构,用类的封装.该类的封装核心应该是读取与解码 首先用个enum来列举一下这个权限,也就是给每个位(权限)取个好听的名字: ... 下一页