使用 Symfony 时如何处理连接表中的附加列?
Posted
技术标签:
【中文标题】使用 Symfony 时如何处理连接表中的附加列?【英文标题】:How to handle additional columns in join tables when using Symfony? 【发布时间】:2013-08-12 04:51:41 【问题描述】:假设我的 Symfony2 包中有两个实体,User
和 Group
。通过多对多关系关联。
┌────────────────┐ ┌────────────────┐ ┌────────────────┐
| 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 时如何处理连接表中的附加列?的主要内容,如果未能解决你的问题,请参考以下文章
在 log4j2 jdbcapender 中设置日期时如何处理 null?