本人菜鸟一枚,最近在开发一个基于php+mysql的报修系统,开发到一半发现数据库的结构有个严重的错误。如图
主要问题出现在user表和web_order表的关联上,user表的主键uid作为web_order表的外键进行关联,重点在web_order表的w_workid的值也是user表的uid字段的值,原因在与我的用户表的用户权限只用了一个power字段区分,这个系统有普通用户,维修员,秘书,管理员4个权限,系统逻辑上需要标示维修单是谁报修的(用户),是谁维修的(维修员),是谁分配的(秘书),这让我不知改如何进行关联,改如何修改表结构,求各位大大帮忙,感激不尽。数据库mysql

解决方案 »

  1.   

    那么你认为谁是主体呢?
    显然是web_order表,那么,会有什么问题呢?
      

  2.   


    我知道web_order表是主体,问题是要实现系统逻辑上标示维修单是谁报修的(用户),是谁维修的(维修员),是谁分配的(秘书),应该如何对web_order表进行调整,user表里有着所有用户的信息(包括维修员,秘书,普通用户,管理员),权限用power区分,用户报修一张单会有uid进行关联,但秘书,维修员用什么对web_order表进行关联?如果好像上图那样加一个workId进行关联(插入uid),那需要同时查询出一张单的报修人和维修人员时会发现查不了。
      

  3.   

    报修时 web_order表 会有一条记录
    维修时 web_order表 会有一条记录
    分配时 web_order表 同样会有一条记录
    怎么会关联不上呢?
      

  4.   

    web_order中维修单的状态是由state字段决定,报修会在web_order上增加一条记录,秘书分配和维修员接单是通过update表的state字段表示,并不会增加记录。
      

  5.   

    既然秘书分配和维修员接单是通过update表的state字段表示,并不会增加记录
    那么你也就没有地方记录是谁在操作
    于是自然也就无法分辨出是谁在进行了什么操作
    对于这么浅显的问题,你都不能找出解决方案吗?
      

  6.   


    另外建立两个表,关联order表,分别记录秘书和维修员的操作