我正在使用Doctrine,我想知道如果不使用连接表,我是否可以拥有一对多关系?
答案 0 :(得分:5)
取决于您是希望它是单向还是双向。
单向一对多只能通过连接表进行,出于“意识形态”的原因,来自Java的休眠:
想象一下,您有一个包含许多产品的类别,并且您需要单向关系 - 即类别了解许多产品,但产品不了解类别。
如果将“category_id”字段放入Product表中,您将使产品表“意识到”它已连接到类别。如果不改变Product表,你将无法删除这种关系 - 这意味着它不是真正的单向。
但是,如果您在单独的联接表中保持类别和产品之间的关系,您可以放弃它,而产品甚至不会注意到某些内容已发生变化。
答案 1 :(得分:0)
只有m:n关系才需要连接表。