【问题标题】:Multiple foreign keys to same table - Doctrine2同一张表的多个外键 - Doctrine2
【发布时间】: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


    【解决方案1】:

    我终于找到了我的错误。

    所以,答案是肯定的。只需为同一个实体创建两个 ManyToOne 关系。 我一开始就失败了,因为我无意中为两个实体的 @JoinColumn 定义分配了相同的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-03
      • 1970-01-01
      • 2019-02-18
      • 2016-10-15
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多