首先,你的表應該是'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