欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-16 11:26:25
...
文章表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将草稿也是独立存放的,其实也没有什么特别的好与坏的问题,我觉得是和设计者的性格有关。有的人喜欢把问题集中起来,攻关之后一马平川,有的人喜欢把问题分散开,避免复杂度的叠加减弱项目开发进度的掌控力。就像是审核表这样,不创建单独的表其实也能完成预定的任务,就是程序逻辑要复杂的多而已。

相关标签: phpcms php