设计派工管理系统时建立数据库表结构遇到的一个问题?
本人最近在做一个项目,给一个系统集成商设计一个简单的派工管理系统,要求记录每天的出工情况以及对每个维修人员的出工情况进行统计查询。在设计数据库时遇到一个问题,假设这里有3个数据库表:
员工信息数据库表:staff
StaffID StaffName
1 张三
2 李四
3 王五
客户资料数据库表:client
ClientID ClientName
1 天一公司
2 嘉瑞公司
3 天昌旅行社
维修记录数据库表:record
RecordID Time StaffID ClientID assignment
1 2004-12-12 1,2 1 网络维护
2 2004-12-13 3 2 上门配置交换机
3 2004-12-14 1,3 3 协助杀毒
注意:维修记录数据库表记录了公司每天的派工记录,比如第一条记录:
1 2004-12-12 1,2 1 网络维护
含义为2004-12-12,张三和李四去天一公司进行网络维护
我的问题是因为每次派出去维修的员工不一定只有一人,可能有多人。所有如果我想统计每个员工的出工情况,就会很麻烦,必须要用正则表达式分割StaffID字段,提取出员工的StaffID,然后在进行分类统计。后来我想到了一个解决方法,就是在维修记录数据库表中取消StaffID字段,然后再建立一个关联数据库表relating,让RecordID和StaffID做一对多的关联,那么对应上面record数据表中的3条数据,新的数据库表relating的内容如下:
RecordID StaffID
1 1
1 2
2 3
3 1
3 3
日后在统计每个员工的出工情况时,只需将数据库表record和relating做关联查询,就可以很简单的对每个员工的工作情况进行统计。但是我觉得这样做还是比较繁琐,比如日后如果想进行删除工作,那么就要对多表进行关联删除,比较麻烦。请问对于我遇到的这个问题,大家有什么好的解决办法吗?