我目前正在使用Doctrine2将工作时间跟踪应用程序从纯php / js移动到Symfony。 到目前为止,一切正常。但在周末之前,我偶然发现了将两个表移植到学说中的问题。
更确切地说: 我们的员工'工作时间信息来自外部系统。它记录员工的身份,当前时间以及是时钟还是时钟输出操作。 我们的应用程序将这些信息复制到其自己的数据库中,并使用它来为员工构建会计记录。所以,我们有一个如下结构:
* Table originalStamps
- Column id
- Column employeesBadgeNumber
- Column timeOfStamping
- Column kindOfAction (coming or leaving)
* Table accountingRecords
- Column employeesID
- Column dateOfStanping
- Column comingTime
- Column leavingTIme
- Column idClockingIn
- Column idClockingOut
如您所见,我们两次引用originalStamps表。 idClockingIn as idClockingOut可能为null,以防员工忘记输入和/或输出。
现在针对实际问题: 我无法让Doctrine2为同一个表创建两个外键。 根据{{3}},在Doctrine1中似乎是可能的。 你知道如何在Docrine2中再次使用它吗?或者我应该为这个特殊情况修改我的模型吗?
如果你将时钟与时钟的关系视为一对一的关系,我可以简单地引入两个新表,comingTimes和leavingTimes。这些可以由accountingRecords表引用,并且它本身将引用originalStamps表。
有关哪条路的帮助和评论?期待更长时间的解决方案将当前结构移植到Doctrine2或重新设计模型?
提前致谢
Faldon
答案 0 :(得分:0)
最后我发现了我的错误。
所以,答案是肯定的。只需为同一个实体创建两个ManyToOne关系。 我首先失败了,因为我无意中为这两个实体的@JoinColumn定义分配了相同的名称。