【发布时间】:2021-03-15 16:40:12
【问题描述】:
我有一个 Laravel 项目,其中可能存在多个多对多关系,但我觉得在正确使用数据透视表方面我在绕圈子。
实体如下:
- 中心:一个即将开业并拥有诸如此类信息的办公室 作为名称、位置、邮政编码、开业日期
- 任务:在中心开放之前必须完成的任务,它包含名称、部门和中心类型等信息
- 部门:部门代表一个关键领域,例如 IT、市场营销、销售等。每项任务都会引用一个部门。
- 用户:用户是系统的用户,属于某个部门,可以完成任务。
注意事项:
- 一个部门有用户,所以用户会有一个部门ID
- 一个任务有一个部门,所以也有一个部门ID
- 一个中心有部门,所以一个支点叫做 center_department,有 center_id 和 department_id
- 用户有分配给他们的任务,但只有属于某个中心的任务
下面的语句是我要绕圈子的地方,因为:
- 将任务分配给一个中心,这很好,因为您可以使用 center_id 和任务 id 制作像 center_task 这样的表
- 一个用户有分配给他们的任务,但是,是否可以有一个包含 user_id 和 center_task_id 的 task_user 表,实际上是一个使用另一个数据透视表的数据透视表?
这是因为用户不能直接分配给任务,他们只能分配给中心内的任务,因为任务与中心具有多对多关系。
如果我只使用任务 ID 分配用户,他们将被分配到每个相关中心的该任务。
那么,让一个使用另一个数据透视表的数据透视表是否可以,或者这是否表明我建议的结构存在问题?
预期流量
- 用户创建任务,为其分配部门和类型,以便该任务仅与特定部门和中心类型相关。
- 用户可以将中心内的任务分配给与任务部门相关的部门中的用户
- 中心的任务将有一个受让人和一个截止日期
理论上,我最终会得到一个包含以下内容的数据透视表:
- user_id
- center_task_id
- 截止日期
- date_completed
基本上我只是觉得我连接了太多部分?
【问题讨论】:
-
我有一个类似问题的答案,希望对您有所帮助! JOIN queries vs multiple queries