首先,你的表应该是'work_orders'(复数),而不是'work_order'(单数)。没有什么大不了的,只要你在你的模型中指定了$useTable = "word_order";
,但是 - 命名约定表格应该是复数形式。因为你只是处理了三件事情,并且不期望不断地添加新的字段,所以使用你提到的三个字段:'created_by',你完全没问题(也可能是我会做的)您的work_orders表中的'requested_by'和'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
),
);
用户可以请求,拥有并创建多个工单,但每个订单只能有一个。 – gsforfree
然后所有的外键(id)都应该在'work_order'表中。 (1-n关系) – Alvaro