【问题标题】:Junction Table with mutiple primary keys具有多个主键的连接表
【发布时间】:2014-01-22 11:12:27
【问题描述】:

我一周前才开始学习 Atk,并决定重新实现无法维护的业务 Intranet。

模型抽象使用起来非常酷,但我想知道如何为我的联结表指定多个主键。

例如,我有站点,我想在它们上分配机器一段时间。 Junction table

这对我来说非常重要,不要碰数据库。

【问题讨论】:

    标签: atk4


    【解决方案1】:

    如果您不允许在该联结表中添加简单的 auto_incremented id 字段,我想您可以在模型中使用 joins 来做到这一点。

    但是添加id 字段对您来说会容易得多,并且将来也会更好地工作。

    例如,您在删除没有唯一 id 字段的记录时可能会遇到一些问题。我知道 (id_machine,id_site) 在你的情况下很可能是独一无二的,但它仍然很难使用。一个简单的 id 字段更容易、更快、更好:)

    【讨论】:

    • 谢谢,我想我会尝试重新定义我这边的数据库,然后迁移数据,如果有说服力的话。完成后,我是否必须使用 joins 或使用 hasMany 链接模型?
    • 然后用 hasMany & hasOne。
    【解决方案2】:

    Dark 有一个很好的建议。你也可以创建一个计算的ID字段,我自己没试过,但试试吧

    $model->getElement('id')->destroy();
    $model->addExpression('id')->set('contact(id_machine,"-",id_site)');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-24
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 2021-02-05
      相关资源
      最近更新 更多