我正在开发一个简历应用程序,并使用CakePHP树行为创建了一个名为areas
的表。在这张表中,我有一堆国家和城市。
此表的最初目的是允许用户指定他们有兴趣在简历中工作的区域。这非常简单,我在users
和areas
之间创建了一个HABTM关系来处理这个问题。
但是,我需要做的下一件事是允许用户指定它们的来源。当然,我可以创建一个与areas
相同的新表,并将其称为不同的东西,但这似乎有点浪费和低效。
所以,我想知道users
表和areas
表之间是否有两个完全不同的关联?
换句话说,users
表将拥有并且属于多个areas
(用于指定他们有兴趣在世界上工作的所有区域的用户)但它也会有一个area
(用户指定他们来自哪个国家)。
我无法想象如何根据CakePHP惯例正确设置模型 - 或者尝试这个是否是一个好主意 - 所以我会感激任何人都可以给出的指示。
我也很高兴听到人们的意见,即使答案不是CakePHP特定的,因为这更像是一个数据库问题而不是其他任何东西。
答案 0 :(得分:0)
您可以指定所需的任何关联。
例如在您的用户模型中:
/**
* @see Model::$hasAndBelongsToMany
*/
public $hasAndBelongsToMany = array(
'Area' => array(
'className' => 'Area',
'joinTable' => 'user_areas',
'foreignKey' => 'user_id',
'associationForeignKey' => 'area_id',
),
);
/**
* @see Model::$hasOne
*/
public $belongsTo = array(
'Farea' => array(
'className' => 'Area',
'foreignKey' => 'farea_id',
),
);