用CakePHP实现标记云



我对标记云做了一些研究,最终选择了一个类似于本页中Wordpress的模式:http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

目前,我创建的表是:PostsPostsTagMapsPostsTags

1) 即使我不打算使用控制器,我是否也需要为PostsTagMaps创建一个表?

2) 一个Post有许多PostTagMaps。我不确定我应该在哪里定义这种关系。我认为它应该是Post模型,但之后我必须将PostsTags表加入PostTagsMaps,然后将其加入Posts,所以我想征求一些建议。

简单的解决方案是遵循Cake约定(这看起来与您链接的解决方案非常相似)。你会有三张桌子:

poststagsposts_tags

然后是您的Post型号HABTM Tag型号。Cake将自动使用联接表来保存和检索信息。有关设置架构的详细信息,请参阅本书。

Cake足够灵活,你可以随心所欲,但如果它是一种基本的posts-tags关系,那么约定方法就是最好的选择。

如果您想使用像PostsTagMaps这样的自定义模型/表,请在HABTM关系定义中使用"with"键。"with"键Cake使用特定的模型(因此使用特定的表),而不是自动生成的版本。在这种情况下,标签模型听起来像是PostsTags,HABTM表是PostsTagMaps,因此Post HABTM PostsTag上的"with"键将是PostsTagMap

相关内容

  • 没有找到相关文章

最新更新