当前位置:Gxlcms > PHP教程 > phpcms为何要将文章的”审核“状态专门放一个表呢?

phpcms为何要将文章的”审核“状态专门放一个表呢?

时间:2021-07-01 10:21:17 帮助过:8人阅读

文章表news都有字段status,为何还要另外做一个表,将处于审核状态的文章复制到这个审核表,直接修改文章表的status字段不是一样的吗?

news 12为字段status

    1   id    mediumint(8)        UNSIGNED    
    2    catid    smallint(5)        UNSIGNED    
    3    typeid    smallint(5)        UNSIGNED    
    4    title    varchar(200)    utf8_general_ci        
    5    style    char(24)    utf8_general_ci        
    6    thumb    varchar(100)    utf8_general_ci        
    7    keywords    varchar(80)    utf8_general_ci        
    8    description    mediumtext    utf8_general_ci        
    9    posids    tinyint(1)        UNSIGNED    
    10    url    char(100)    utf8_general_ci        
    11    listorder    tinyint(3)        UNSIGNED    
    12    status    tinyint(2)        UNSIGNED    
    13    sysadd    tinyint(1)        UNSIGNED    
    14    islink    tinyint(1)        UNSIGNED    
    15    username    char(20)    utf8_general_ci        
    16    inputtime    int(10)        UNSIGNED    
    17    updatetime    int(10)        UNSIGNED    

content_check 7为字段status

    1   checkid    char(15)    utf8_general_ci
    2    catid    smallint(5)        UNSIGNED    
    3    siteid    smallint(5)        UNSIGNED    
    4    title    char(80)    utf8_general_ci        
    5    username    char(20)    utf8_general_ci        
    6    inputtime    int(10)        UNSIGNED    
    7    status    tinyint(1)    

回复内容:

文章表news都有字段status,为何还要另外做一个表,将处于审核状态的文章复制到这个审核表,直接修改文章表的status字段不是一样的吗?

news 12为字段status

    1   id    mediumint(8)        UNSIGNED    
    2    catid    smallint(5)        UNSIGNED    
    3    typeid    smallint(5)        UNSIGNED    
    4    title    varchar(200)    utf8_general_ci        
    5    style    char(24)    utf8_general_ci        
    6    thumb    varchar(100)    utf8_general_ci        
    7    keywords    varchar(80)    utf8_general_ci        
    8    description    mediumtext    utf8_general_ci        
    9    posids    tinyint(1)        UNSIGNED    
    10    url    char(100)    utf8_general_ci        
    11    listorder    tinyint(3)        UNSIGNED    
    12    status    tinyint(2)        UNSIGNED    
    13    sysadd    tinyint(1)        UNSIGNED    
    14    islink    tinyint(1)        UNSIGNED    
    15    username    char(20)    utf8_general_ci        
    16    inputtime    int(10)        UNSIGNED    
    17    updatetime    int(10)        UNSIGNED    

content_check 7为字段status

    1   checkid    char(15)    utf8_general_ci
    2    catid    smallint(5)        UNSIGNED    
    3    siteid    smallint(5)        UNSIGNED    
    4    title    char(80)    utf8_general_ci        
    5    username    char(20)    utf8_general_ci        
    6    inputtime    int(10)        UNSIGNED    
    7    status    tinyint(1)    

待审核文章数量肯定不大,但文章表可能有非常多的文章,甚至需要分表。

单独看表结构意义不大,我也没用过phpcms,我觉得这样可能是为了更容易对审核机制进行扩展开发。
例如,某刊物使用phpcms发布电子版,按照流程,文案要经过组长、副主编、主编三道审核,对于类似的情况下:
首先,从权限控制上来说,分表后权限管理就更清晰了,审核权限不包含对原文的修改,同时避免编辑原稿污染了受审核的数据。
其次,审核者可以在内容上批注意见,因为是内容副本,所以不影响原文。
最后,该表有独立的status字段,可以扩展出初审、复审、申诉等审核流程。
补充,有的cms将草稿也是独立存放的,其实也没有什么特别的好与坏的问题,我觉得是和设计者的性格有关。有的人喜欢把问题集中起来,攻关之后一马平川,有的人喜欢把问题分散开,避免复杂度的叠加减弱项目开发进度的掌控力。就像是审核表这样,不创建单独的表其实也能完成预定的任务,就是程序逻辑要复杂的多而已。

人气教程排行