MVC模型关联-我如何构建这个数据模型


CakePHP - MVC Model Associations - How can I structure this data model?

一个困扰了我几个小时的小问题:

对于我的cakePHP网站项目(使用2.0版本),我有2个模型。它们有点模糊,所以我将把模型翻译成标准的博客文章模型。

所以我有一个"Posts"模型和许多"Categories"。

class Post
$belongsTo = 'Category'
class Category
$hasMany = 'Post'

到目前为止一切顺利。现在我希望每个类别都有一个(强制)主要职位。

我该怎么把它联系起来呢?

  • 另一个"主邮政"模式?这似乎是多余的,因为它将有相同的内容的帖子。
  • 布尔'is_main'列在帖子?似乎不对,因为每个类别中只有一个帖子被允许为"主"。
  • 类别中的'mainpost_id'列?听起来不错,但是"$belongsTo"是唯一允许外键在当前类中的关联。在我看来,当一个类别属于Post时,相反的情况也是正确的,这似乎是错误的。belongsTo也是一个多对一关联我想要的是一对一关联

请帮帮我,[插入姓名]。你是我唯一的希望。;)

编辑:我想这将是伟大的,如果有一种方法有一个"hasOne"的关系,但有外键在同一类$hasOne X,而不是在另一个是标准。

这里有一个解决方案:

[ categories ]
id
name
mainpost_id
[ posts ]
id
category_id
title
text
  • 类别hasMany Post
  • Post belongsTo Category
  • 类别hasOne MainPost(见代码)

我认为你使用hasAndBelongsToMany关系....更多详细信息请访问此链接http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html