Foreign Key in 2 tables (CakePHP)


Foreign Key in 2 tables (CakePHP)

我有3个表:staff, users和threads。

员工和用户都可以创建线程,一个线程属于一个用户。

在线程中,有一个user_id (FK - BelongsTo)。问题是,我怎么知道是谁创建了这个线程。如果我创建一个名为creator_id的字段,我仍然不知道它是一个员工还是一个用户创建了这个线程。

我还尝试了一种不同的方法,创建了一个名为creator (enum('staff', 'user))的字段。这种方法的局限性是,当我使用Thread->find()时,我无法找到检索创建者信息的方法。

我有什么选择来实现我想要的?

按照下面的线程模型进行模型关联。创建一个名为creator_id的字段,并存储创建线程的用户/员工的id,

public $belongsTo = array(
    'Client' => array(
        'className' => 'Staff',
        'foreignKey' => 'creator_id',
        'conditions' => array('Thread.creator' => 'staff'),
        'fields' => '',
        'order' => ''
    ),
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'creator_id',
        'conditions' => array('Thread.creator' => 'user'),
        'fields' => '',
        'order' => ''
    )
);