$sql = "create table if not exists xxt_article_review_log(";
$sql .= 'id int not null auto_increment';
$sql .= ',mpid varchar(32) not null';
$sql .= ',article_id int not null';
$sql .= ',seq int not null';
$sql .= ',mid varchar(32) not null';
$sql .= ',disposer_name varchar(255) not null';
$sql .= ',send_at int not null';
$sql .= ',receive_at int not null default 0';
$sql .= ',read_at int not null default 0';
$sql .= ',close_at int not null default 0';
$sql .= ',phase char(1) not null'; // Review|Typeset
$sql .= ",state char(1) not null"; // Pending|Disposing|Forward|Close
$sql .= ',remark text';
$sql .= ",primary key(id)) ENGINE=MyISAM DEFAULT CHARSET=utf8";
我的做法是给要发布文档设置一个是否发已经发布的状态,如果是已经发布的状态就配合acl进行控制;如果是审核状态(未发布),就建立审核日志,每条日志对应一个审核环节,每个环节记录发起人和接收人,只有审核日志中的人才能访问对应的问题,并进行相应的操作。给个参考数据库结构。
权限控制用基于RBAC的权限管理框架shiro实现再合适不过了,不过用的好坏也得看你水平啦