我对标签云做了一些研究,最后我选择了类似于本页中所见的Wordpress的架构:http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html
目前,我创建的表格是:Posts
,PostsTagMaps
,PostsTags
1)即使我不打算使用控制器,我还需要为PostsTagMaps
创建一个表吗?
2)Post
有多个PostTagMaps
。我不确定我应该在哪里定义这种关系。我认为它应该是Post
模型,但是我必须将PostsTags
表加入PostTagsMaps
然后将其加入Posts
,所以我想要求一些建议。
答案 0 :(得分:1)
简单的解决方案是遵循Cake约定(它与您链接的解决方案非常相似)。你将有三个表:
posts
,tags
,posts_tags
然后是您的Post
模型HABTM Tag
模型。 Cake会自动使用连接表来保存和检索信息。有关设置架构的详细信息,请查看the book。
Cake足够灵活,你可以随意使用它,但如果它是一种基本的post-tags关系,那么常规方法就是你的选择。
如果要使用PostsTagMaps
之类的自定义模型/表格,请使用HABTM关系定义中的“with”键执行此操作。 'with'键告诉Cake使用特定模型(因此使用特定表)而不是自动生成的版本。在这种情况下,您的代码模型听起来像是PostsTags
而您的HABTM表格是PostsTagMaps
,因此Post
HABTM PostsTag
上的'with'键将是{{1} }。