一个任务管理软件数据库设计问题
有一个任务表(Tasks)
和三个对象表——用户表(Users)、部门表(Departments)和生产线表(ProductLines)
一个生产线包含多个部门,一个部门包含多个用户
发布一个任务时,要求有一个或多个对象来作为“接受人”。
场景1:接受人是一个用户;
场景2:接受人是一个部门;
场景3:接受人是一个生产线;
场景4:接受人是一个部门+若干用户(此时要求显示该部门名称和若干用户姓名);
场景5:接受人是若干用户;
场景6:接受人是若干部门;
场景7:接受人是若干部门+若干用户(此时要求显示若干部门名称和若干用户姓名);
场景8:接受人是一个部门中的大部分用户(此时要求显示为一个部门,而不显示这些用户);
场景9:接受人是一个生产线中的大部分部门(此时要求显示为一个生产线,而不显示这些部门);
请问该如何设计这个“任务和接受人映射表”?
------解决方案--------------------不管任务是下个个人,还是部门,最终都是给人的,所以任务和人之间应该是多对多的关系,那也就是需要一张关系表来存放啦:
create table R_TASK_USER
(
RID int identity(1,1) not null primary key,
TASK_ID int,
USER_ID int
)