在CakePHP中自我指导ManyToMany公约

时间:2009-11-26 02:06:04

标签: database orm cakephp conventions

我有一个现有的数据模型,我可以自由地重命名以匹配CakePHP's conventions。我有一种图形节点,其中一个节点可以有任意数量的子节点和任意数量的父节点(单向关系)。

这是遵循CakePHP惯例的节点表:

Table: nodes
Column: node_id (INT)
Column: description (TEXT)

我的问题是联接表应该是什么样的?现在看来是这样的:

Table: nodes_nodes
Column: parent_node_id (INT)
Column: child_node_id (INT)

文档所暗示的应该是:

Table: nodes_nodes
Column: node_id (INT)
Column: node_id (INT)

请注意,两个列名相同,显然不起作用。这两列应该叫什么?或者CakePHP的约定可以在没有配置的情况下处理这种情况吗?

2 个答案:

答案 0 :(得分:3)

正如neilcrookes所说,网上有一些关于在CakePHP中做这件事的文章。 Here就是其中之一,以用户HABTM用户(朋友)为例。

在该链接文章中,如果您不打算在模型上进行分页,则可以忽略User类定义之后的所有内容。

答案 1 :(得分:1)

如果某个节点有子节点,那么这些子节点会自动将第一个节点作为父节点吗?

这种关系可能类似于用户与用户之间的关系,其中关系象征着社交网络中的共同“朋友”概念。建议你有一个谷歌周围的用户/朋友数据模型,看看是否有帮助。