我有3个表:员工,用户和线程。
员工和用户都可以创建线程,线程属于用户。
在线程中,有一个user_id(FK - BelongsTo)。问题是,我如何识别谁创建了该线程。如果我创建一个名为creator_id的字段,我仍然不知道如果它是创建该主题的人员或用户。
我还尝试了一种不同的方法,创建一个名为creator的字段(enum(' staff',' user))。这种方法的局限在于,当我使用Thread-> find()时,我无法找到一种方法来检索创建者的信息。
我有什么选择可以实现我的目标?
答案 0 :(得分:2)
在Model for Thread中将Model Association作为以下内容。创建一个名为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' => ''
)
);