如何基于没有单列主键的数据库表实现模型?该表具有复合主键但没有唯一列。我想用这个表作为主表创建一个模型,但据我所知,模型需要一个唯一的id字段。
该表包含服务的自定义字段值,并包含以下3列:field_id,service_id,value。我需要能够引用服务存在的所有自定义字段值,并引用链接到特定值的所有服务。
我遇到的两个主要问题是......
1)根据自定义字段值表构建模型,该表没有唯一列
2)通过两个“ON”条件完成连接。例如:
services JOIN fields ON
services.id = field.service_id
JOIN values ON
field.id = values.field_id AND
values.service_id = services.id
答案 0 :(得分:0)
1)几天前在以下问题中查看我和罗马人的答案:Junction Table with mutiple primary keys
2)这很简单 - 你应该将下一个连接添加到模型本身,而不是之前的“join”
$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-> andExpr()。
我猜你可以使用addCondition(将该条件移动到WHERE)或使用DSQL来实现它。