1、为什么模块名必须有@前缀?
因为为了统一模块的方法,如果有模块名前缀为@,则系统会到系统自带的自带的内部数据库(AM.dat)中
得到模块的配置信息。
所以为了区别于其他标准模块,模块名必须使用前缀名@
2、在内部数据库AM.dat中,需要特殊的命名吗?
应该不需要。
这里面应该主要有这几个表:modulefields
modulerelations
所以不需要特殊命名。
3、在系统数据库中,system.dat或者mysql,mssql的数据库中,和权限相关的表,需要增加特殊前缀吗 ?
应该来说,因为这个表是系统自己使用的,应该考虑无所谓是否使用前缀。
基础表如下:
和权限相关如下
users
roles
user_role
user_module 等等
和模块相关如下
modulegroup
moduledefields
modulerelations等等
逻辑而言,这个库中,不需要有其他的数据表。
在这个意义上,不需要额外标识
4、结论
只需要在模块命名的使用在模块的名之前,增加@符号,进行权限模块标识。
比如@user实际上指的是system.db中的user表。