【发布时间】:2014-08-05 13:41:50
【问题描述】:
我目前正在使用 Doctrine2 将工作时间跟踪应用程序从纯 php/js 转移到 Symfony。 到目前为止,一切正常。但在周末之前,我偶然发现了将两个表移植到教义的问题。
更准确地说: 我们员工的工作时间信息来自外部系统。它记录员工的 ID、当前时间以及是否是上班或下班动作。 我们的应用程序将这些信息复制到它自己的数据库中,并使用它为员工建立会计记录。所以,我们的结构如下:
* 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 和 idClockingOut 可能为空,以防员工忘记打卡和/或下班。
现在解决实际问题: 我无法让 Doctrine2 为同一个表创建两个外键。 根据MySQL: Two foreign keys in one table referring to another table,在 Doctrine1 中似乎是可能的。 你知道在 Docrine2 中再次使这项工作的方法吗?还是应该针对这种特殊情况重新设计模型?
如果您将与时钟输入和时钟输出的关系视为一对一的关系,我可以简单地介绍两个新表,comingTimes 和 leaveTimes。这些可以被accountingRecords 表引用,并且本身会引用originalStamps 表。
关于走哪条路的任何帮助和cmets?是否正在寻找将当前结构原样移植到 Doctrine2 的解决方案或重新设计模型?
提前致谢
法尔登
【问题讨论】:
标签: mysql database-design doctrine-orm