【发布时间】:2016-05-22 11:20:42
【问题描述】:
我正在设计一个数据库实体模型。我想避免循环关系,但我不确定在以下情况下如何做:
该系统用于跟踪开发人员的任务和客户的购买。每个产品都有一种且只有一种相关的技术和一定数量的时间。客户可以购买不同种类的产品。一项任务关联一种且只有一种技术。
这些关系很重要,因为在提交数据后,我希望能够查询客户在某些技术上使用的时间是否超过了他购买的时间,或者相反,如果他购买了他所使用的另一种技术的时间不使用。另外我想询问开发人员如何在不同的技术中占用他们的时间,或者哪些技术与开发人员相关联。
这是我的设计,但我认为循环关系是我应该避免的,我应该找到其他方法来解决它。
解决这个问题的标准方法应该是什么?
根据 Alex 的建议,这将是新图表
【问题讨论】:
-
你能更详细地描述“任务”吗?我原以为“任务”会直接与产品相关联。
-
什么循环关系?
-
@Alex 感谢您的评论。任务将是开发人员在一段时间内工作的事情。例如,假设一个客户有 2 个系统,一个带有 ruby 堆栈,另一个带有 java 堆栈,如果开发人员在一个系统上工作 4 小时,在另一个系统上工作 4 小时,他将有两个任务,每个系统一个。我面临的问题是,开发人员的工作可能与销售的产品不匹配,也许需要在一种技术上工作更多,而不是在另一种技术上工作。该模型的目的之一是突出这种情况。
-
@philipxy 感谢您的评论。也许我错了,但我认为任务、客户、购买、产品和技术之间存在循环关系。
-
你认为循环关系是什么,为什么你认为你必须避免它们?
标签: sql database-design