【发布时间】:2011-01-31 16:07:41
【问题描述】:
我正在尝试使用具有层次结构的类别表构建导航系统。通常,该表将定义如下:
id (int) - Primary key
name (varchar) - Name of the Category
parentid (int) - Parent ID of this Category referenced to same table (Self Join)
但问题是我要求一个类别可以是多个父类别的子类别。就像 Has and Belongs to Many (HABTM) 关系一样。
我知道如果有两个表,类别和项目,我们使用连接表 categories_items 来列出 HABTM 关系。但在这里我没有两个表,只有表,但应该以某种方式显示 HABTM 与自身的关系。这可以使用单个表吗?如果是,如何?如果不可能,在创建附加连接表时应该遵循哪些规则(表命名、字段)?
我正在尝试使用 CakePHP 来实现这一点,如果有人可以为这个问题提供 CakePHP 解决方案,那就太棒了。即使这是不可能的,任何有关创建连接表的解决方案都值得赞赏。感谢您的宝贵时间。
-- 编辑-- 我的问题似乎有点令人困惑,所以我试图重申我正在寻找的内容。 在传统的自引用(自连接)父子关系中,每个项目只能有一个父项。我正在寻找的是模拟 HABTM 关系,即每个项目的多个父项。
Categories & Items - 要定义 HABTM,我们使用 categories_items 连接表。
如果在类别中我需要 HABTM,我应该怎么做?
【问题讨论】:
-
你可以在一个字段中保存多个值,用逗号或一些分隔符分隔它们
-
我在谷歌搜索时发现了这一点,n2.nabble.com/…,我尝试复制相同的内容,但 Cake 仍然没有捕捉到关联。有人知道吗?