是一个关于5级审批的问题。怎样实现审批表中的1-4级审批时申请表中的审批状态是‘审批中’,5级审批后审批状态变为‘通过’。偶想了N长时间实在不知道该怎么实现。在哪里写代码。。各位大虾帮忙解决。。
感激不尽,眼看别人毕业设计都做完了,急呀。555555555

解决方案 »

  1.   

    用个状态表来做
    如 Status表
    ID    Name
    1    任务新建
    2   任务下达
    3   任务制作完成
    4   任务初审
    5   任务初审不能过
    6
    .
    .
    .
    N   任务通过主表里就用个State字段,记录Status中的ID,这样一关联不就对应了相应的状态
      

  2.   

    用一个字段可以解决问题:
    checkstate char(5)  
    内容描述:
    '1':审核完成;'0':未审核; '11111':全部审核完成;'00000':全部未审核;'00001':通过第一级审核;......在用户界面显示/数据保存时,自己写一个处理算法就行了.如果固定是5级审核,那么简单些吧:  [:)]
    level   field                   desc
    1        checkstate_1  bit  1:通过审核;0:未审核; 
    2        checkstate_2  bit  ...
    3        checkstate_3  bit  ... 
    4        checkstate_4  bit  ... 
    5        checkstate_5  bit  ... 
      

  3.   

    楼上的两种都不错
    简单点就用一个Integer,随便定义哪个值为“通过”状态
      

  4.   

    给位不是那样的,我把两个表的字段复制下来,如下:
    表名 DS_ReplyApplication
    列名 数据类型(精度范围) 空/非空 约束条件
    ReplyApplicationId Char(8) NOT NULL 主键,自动编号
    StuSelectTopicId Char(8) NOT NULL 外键,来自DS_StuSelectTopic
    ApplyTime Datetime(8) NOT NULL Getdate()
    ApplyReason Varchar(100) NULL
    ApplyType Varchar(50) NOT NULL
    ApplyState Varchar(50) NULL 默认值:未审批
    补充说明 ApplyType(0-放弃答辩 1-申请答辩 2-其他)表名 DS_QualificationCensor
    列名 数据类型(精度范围) 空/非空 约束条件
    QualificationCensorId bigint(8) NOT NULL 主键,自动编号
    ReplyApplicationId bigint (8) NOT NULL 外键,来自DS_ReplyApplication
    CensorIdea Varchar(100) NULL
    Censor'sCertificate Char(1) NOT NULL
    CensorPeopleId Char(11) NOT NULL
    CensorPeopleDate Datetime(8) NOT NULL Getdate()
    CensorConclusion Varchar(50) NOT NULL
    补充说明 certificate(1-5 5级审批且结论为通过后则锁定审批)这两个表已经有了ReplyApplicationId这个外键来关联了,应该是用一个Count来记录审查表中的ReplyApplicationId个数,如果是0个就表示未审核。。
    关键是这个语句应该写在哪?具体改怎么写呀,本人太笨想不出来呀