一般情况下,我可以在CakePHP通过不同名称与另一个模型的列关联的表中创建外键(即列)吗?顺便提一句,我正在使用bake all
开始设置标准CRUD。Cakephp 2.3:当外键与模型列不匹配时,建立模型关联
我的问题的一般形式是:
Table_A
有id
| label
| TableB_labelA_id
| TableB_labelB_id
Table_B
has id
| label
为了使问题的休息少难看,不过,这是我目前的应用:
games
有id
| date
| us
| them
teams
has id
| name
我认为这可以通过别名和关联定义来实现,但我不太清楚。我也想到简单地创建Us
和Them
模型,扩展Team
,但这似乎是一个不必要的努力。
我也注意到,在我Game model
是Us
和Them
的$belongsTo
阵列中列出,而不是$hasMany
这将直观地都显得更正确。
想法?我会非常感激!
我是否明白'Us'和'Them'都是'teams.id'的外键?如果是这种情况,那么'$ belongsTo' ** _是正确的关系** – thaJeztah
哦,也许我误解了这一点。在上面的例子中,我的“游戏”模型的$ belongsTo数组意味着游戏属于“us”和“them”,或者属于“game”的东西列表包含“us”和“ them'? – Jonline
好吧,有时候'belongsTo'这个名字很混乱。在你的情况下,游戏“属于”你*和*他们; *游戏*并不拥有它的玩家。一些解释可以在这里找到[一对多](http://en.tekstenuitleg.net/articles/software/database-design-tutorial/one-to-many.html) – thaJeztah