我有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' => ''
)
);