Database design 维修跟踪数据库设计

Database design 维修跟踪数据库设计,database-design,Database Design,对于为现有客户机设计与维护机器相关的数据模型而言,这既是一个最佳实践,也是一个优化问题 情景: 一名员工或其中两名访问客户在一台或多台机器上进行维修(或其他类型)服务。我还想指定将车开到客户处的员工。 我还想捕获哪个员工在哪台机器上工作。 目前,该公司使用一张服务卡记录每次访问多台机器的维修服务 我想每台机器每次访问都必须有自己的服务卡。这意味着一次访问可以包括许多服务,并且每个服务只与一台机器相关。每项服务都可以由一名或多名员工执行。但是为了捕捉谁开车去参观:每次参观都由一名或多名员工进行 关

对于为现有客户机设计与维护机器相关的数据模型而言,这既是一个最佳实践,也是一个优化问题

情景: 一名员工或其中两名访问客户在一台或多台机器上进行维修(或其他类型)服务。我还想指定将车开到客户处的员工。 我还想捕获哪个员工在哪台机器上工作。 目前,该公司使用一张服务卡记录每次访问多台机器的维修服务

我想每台机器每次访问都必须有自己的服务卡。这意味着一次访问可以包括许多服务,并且每个服务只与一台机器相关。每项服务都可以由一名或多名员工执行。但是为了捕捉谁开车去参观:每次参观都由一名或多名员工进行

关于员工数据,我担心拜访-员工-服务之间存在冗余

非常感谢你的建议。我相信有不止一种方法可以做到这一点


谢谢

我觉得你可能有以下表格

Employee
- eid (pk)
- . . .

Machine
- mid (pk)
- . . .

ServiceCall
- sid (pk)
- driver_eid(fk to Employee.eid)
- . . .

ServiceCall_Machine_Employee_Map
- sid (fk to ServiceCall.sid)
- mid (fk to Machine.mid)
- eid (fk to Employee.eid)
- . . .

您需要区分记录数据和存储数据

从必须填写服务卡的人员的角度来看,每次就诊一张服务卡更有效

关系数据库需要将数据存储在表单中

在数据库方面,服务卡可以(应该)高度非规范化

下面是我对数据库模式的尝试

Client
------
Client ID
Client Name
...

Employee
--------
Employee ID
Employee Name
...

Machine
-------
Machine ID
Machine Name
...

Service
-------
Service ID
Service Name
...

Client Visit
------------
Client Visit ID
Client ID
Visit Date or Visit Time stamp
...

Client Visit Employee
---------------------
Client Visit Employee ID
Client Visit ID
Employee ID
Driver Boolean

Client Visit Service
--------------------
Client Visit Service ID
Client Visit ID
Employee ID
Machine ID
Service ID

为什么您认为最好是多对多,而不是每台机器一张服务卡?如果我将机器id作为外键放在服务表中,并将其从“客户访问服务”表中删除,会怎么样?该服务是一种通用服务,如“润滑机”。在服务表中列出所有服务一次。客户访问服务是将一般服务与特定机器和特定客户访问联系在一起的服务。因此,基本上,您希望技术人员从一般服务列表中进行选择,以实现客户访问服务的信息。是吗?@blaise:技师可以在服务卡上随意涂鸦。坐在GUI前面的应用程序用户从列表中进行选择。当然,机器维修和服务的清单是有限的。