在Symfony2中使用条令存储开放对象关系

在Symfony2中使用条令存储开放对象关系,symfony,orm,doctrine-orm,entity,entity-relationship,Symfony,Orm,Doctrine Orm,Entity,Entity Relationship,我正在将计划程序和任务管理器构建到Symfony2应用程序中。我目前定义了4个任务实体,让我们称它们为任务A、任务B、任务C和任务D——每个任务的结构稍有不同,这就是为什么我将它们分成4个单独的实体,而不是一个实体,然后将一组列留空 我的应用程序允许用户创建新的计划实体/对象,该实体/对象将具有不同数量的任务A-D。我现在需要做的是设置任务依赖项。因此,任务A3可能依赖于任务B2的完成,而任务C4可能依赖于任务D1 我试图找出存储这些依赖项的最佳方法;每个任务只有一个依赖项,它可以是其他三种类型

我正在将计划程序和任务管理器构建到Symfony2应用程序中。我目前定义了4个任务实体,让我们称它们为任务A、任务B、任务C和任务D——每个任务的结构稍有不同,这就是为什么我将它们分成4个单独的实体,而不是一个实体,然后将一组列留空

我的应用程序允许用户创建新的计划实体/对象,该实体/对象将具有不同数量的任务A-D。我现在需要做的是设置任务依赖项。因此,任务A3可能依赖于任务B2的完成,而任务C4可能依赖于任务D1


我试图找出存储这些依赖项的最佳方法;每个任务只有一个依赖项,它可以是其他三种类型中的任何一种。我是否会要求每个任务实体为其他任务设置一列?例如:任务A实体是否需要有我必须单独检查的B依赖项、C依赖项和D依赖项列?或者,我是否遗漏了一些可以将与任意实体的关系存储在一列中的内容?我已经看过了条令的对象类型,但我不确定当我把它拿出来时会是什么样子。我能知道它进入时是什么类型的对象吗?

我认为您不想使用对象类型-这是一个序列化的php对象

如果不同的任务在结构上确实略有不同,则可以使用单表继承将所有任务保留在一个表中,然后使用自引用一对一关系来管理依赖关系。是的,对于不同的任务类型,该表将有额外的空列,但是您的实际实体将彼此独立

这里概述了继承映射策略的一些注意事项:


这里的条令文档中演示了自引用关联:

您知道,我最初将其设计为使用单个任务实体来捕获类型之间一致的信息,并构建了一个EAV模型来存储不一致的数据。为了支持我所描述的,我被说服了,但我想我会回到我的原始模型,并使用你关于依赖性的自引用关联的建议。谢谢