首頁 > 後端開發 > php教程 > 向各位大神求教关于数据库设计方面的问题

向各位大神求教关于数据库设计方面的问题

WBOY
發布: 2016-06-23 14:03:45
原創
810 人瀏覽過

本人菜鸟一枚,最近在开发一个基于php+mysql的报修系统,开发到一半发现数据库的结构有个严重的错误。如图




主要问题出现在user表和web_order表的关联上,user表的主键uid作为web_order表的外键进行关联,重点在web_order表的w_workid的值也是user表的uid字段的值,原因在与我的用户表的用户权限只用了一个power字段区分,这个系统有普通用户,维修员,秘书,管理员4个权限,系统逻辑上需要标示维修单是谁报修的(用户),是谁维修的(维修员),是谁分配的(秘书),这让我不知改如何进行关联,改如何修改表结构,求各位大大帮忙,感激不尽。


回复讨论(解决方案)

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

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

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

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



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

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

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

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

加一个操作日志表,记录人员 时间 什么操作等等信息

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板