0

我正在开发一个简历应用程序,并areas使用 CakePHP Tree Behaviour 创建了一个表。在这张表中,我有一堆国家和城市。

该表的最初目的是允许用户指定他们对简历感兴趣的领域。这很简单,我已经创建了一个 HABTM 关系usersareas处理这个问题。

然而,接下来我需要做的是允许用户指定他们来自哪里。当然,我可以创建一个新表,与它相同areas并称其为不同的表,但这似乎有点浪费和低效。

所以,我想知道users表和areas表之间是否真的有可能有两个完全不同的关联?

换句话说,该users表将拥有并属于多areas(为了用户指定他们在世界上工作感兴趣的所有领域的目的)但它也将拥有一area(为了用户的目的)指定他们来自哪个国家)。

我无法开始想象如何根据 CakePHP 约定正确设置模型——或者尝试这样做是否是一个好主意——所以我将不胜感激任何人都可以提供的指点。

即使答案不是特定于 CakePHP 的,我也很高兴听到人们的意见,因为这更像是一个数据库问题。

4

1 回答 1

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',
        ),
    );
于 2013-01-14T08:56:48.283 回答