2014-01-25 57 views
1

如何基於沒有單列主鍵的數據庫表實現模型?該表具有複合主鍵,但沒有唯一列。我想創建一個以此表爲主表的模型,但據我所知,該模型需要一個唯一的ID字段。ATK4:表中沒有唯一的列

該表保存服務的自定義字段值,並由以下3列組成:field_id,service_id,value。我需要能夠引用服務中存在的所有自定義字段值,並且還需要引用鏈接到特定值的所有服務。我在構建是基於自定義字段的模型

的兩個主要問題..

1)值實現帶有兩個聯接「ON」表不具有唯一的列

2)條件。例如:

services JOIN fields ON 
    services.id = field.service_id 
JOIN values ON 
    field.id = values.field_id AND 
    values.service_id = services.id 

回答

0

1)見我和羅馬人的答案在以下問題前些日:Junction Table with mutiple primary keys

2)這很簡單 - 你應該增加未來加盟不是自己的模式,但之前的「加盟」

$j_fields = $services_model->join('fields'); 
$j_values = $j_fields->join('values'); // $j_fields here not $services_model 

你的還(values.service_id = services.id)以某種方式定義第二個條件,但要告訴我沒有工作示例準備發佈真相。據我所知,你必須使用$ model-> dsql->和Expr()。

我想你可以使用addCondition(將該條件移動到WHERE)或使用DSQL。

+0

感謝您的快速回答! – imaksikkar