Mat*_*att 3 php mysql database kohana foreign-key-relationship
我有2个数据库表:团队和游戏.
出于这个问题的目的,我们正在处理足球(足球)队和比赛.
每场比赛都有2支球队,通常是主队和客队,尽管偶尔两支球队都可以保持中立.
我的问题是我是否应该使用Games表中的2个外键(home_team_id,away_team_id)表示这种数据关系,或者我是否应该使用与games_teams表的多对多关系来链接这两者,在这种情况下我需要还可以存储球队是主队还是客队,看起来有点矫枉过正.
为了增加混乱,我在KohanaPHP中使用ORM库,这些期望fk被称为team_id或链接表只包含2列.如果您在KohanaPHP遇到此问题,请留下回复,否则任何一般性建议也非常感谢.
只需使用两列,否则您只需要在joiner表中对其进行限定.这不像是一个睡觉的定时炸弹,突然有一天你会发现你需要有一个真正的多对多.
在我看来,2列非常合适.任何游戏都可能只有两个团队的事实通过两列来反映在数据库模式中.通过引入链接表,您可以介绍单个游戏可能拥有2个主队,2个客队,并且您需要进行额外验证以确保此场景永远不会发生的可能性.通过将事物隔离到两列,您的模式本身就可以强制执行数据完整性.