使用 Symfony 时如何处理连接表中的附加列?

Posted

技术标签:

【中文标题】使用 Symfony 时如何处理连接表中的附加列?【英文标题】:How to handle additional columns in join tables when using Symfony? 【发布时间】:2013-08-12 04:51:41 【问题描述】:

假设我的 Symfony2 包中有两个实体,UserGroup。通过多对多关系关联。

    ┌────────────────┐         ┌────────────────┐         ┌────────────────┐
    |      USER      |         | USER_GROUP_REL |         |     GROUP      |
    ├────────────────┤         ├────────────────┤         ├────────────────┤
    | id#            ├---------┤ user_id#       |    ┌----┤ id#            |
    | username       |         | group_id#      ├----┘    | groupname      |
    | email          |         | created_date   |         |                |
    └────────────────┘         └────────────────┘         └────────────────┘

向连接表添加其他列的好做法或好方法是什么,例如表示User 加入Group 的日期的创建日期?

我知道我可以使用QueryBuilder 来编写INSERT 语句。

但据我所知,任何 INSERT QueryBuilder 或本机 SQL 的示例让我相信 ORM/Doctrine 试图避免直接的 INSERT 语句(例如,出于安全原因)。另外,就我对 Symfony 和 Doctrine 的理解而言,如果框架不涵盖这样一个常见的需求,我会大吃一惊。

【问题讨论】:

+1 结构美观 嗯,当多对多表有额外的列时,我设置了用户(1-n)用户组(n-1)组。 【参考方案1】:

您想设置关系的属性。这就是它在教义中的做法: doctrine 2 many to many (Products - Categories)

我用一个用例(比如你的)回答了这个问题。

这是一个考虑了好处和用例的附加问题/答案:Doctrine 2 : Best way to manage many-to-many associations

【讨论】:

以上是关于使用 Symfony 时如何处理连接表中的附加列?的主要内容,如果未能解决你的问题,请参考以下文章

在表中找不到给定记录时如何处理游标中的异常

连接停止时如何处理猫鼬数据库

使用模态确认删除时表的id值为null时如何处理错误?

在 log4j2 jdbcapender 中设置日期时如何处理 null?

断开互联网连接时如何处理 NSJSONSerialization 崩溃

使用 ActiveMerchant 时如何处理超时?