$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實現再合適不過了,不過用的好壞也得看你水平啦