首先,您的表应该是“work_orders”(复数),而不是“work_order”(单数)。没什么大不了的,只要您$useTable = "word_order";
在模型中指定,但是 - 命名约定说表应该是复数。
因为您只处理三件事,并且不期望不断添加新字段,所以使用您提到的三个字段完全没问题(可能是我会做的):'created_by','requested_by',和 work_orders 表中的“owned_by”字段。
我想如果是我,我会遵循something_id
约定并使用“creator_id”、“requester_id”和“owner_id”。不管怎样,这取决于你。
然后,当您设置关联时,您只需使用这三个字段与“用户”模型关联。在我的脑海中,它会是这样的:
//WorkOrder model
public $belongsTo = array(
'Creator' => array(
'className' => 'User',
'foreignKey' => 'created_by' //could use 'creator_id' instead
),
'Requester' => array(
'className' => 'User',
'foreignKey' => 'requested_by' //could use 'requester_id' instead
),
'Owner' => array(
'className' => 'User',
'foreignKey' => 'owned_by' //could use 'owner_id' instead
),
);