桌子
ID|owner_id|work_id|lorem|etc|
1 |00123 | 00213 |XXXXX|XXX|
2 |00124 | 00213 |XXXXX|XXX|
owner_id (fk) owners.id (owners[id,name,etc])
work_id (fk) work.id (work[id,name,etc])
问题是我可以设置codeigniter
,当我
select(table.*,work.name as work,owners.name as owner) from table
它会自动处理连接,因为该表已经包含 fk-ref ?或者我必须包括join('owner','owner.id=table.owner_id)
?
实际上我想要的是,当我选择一个包含 fk 的表时,只需在 ref 表上传递列名,这个 fk 列就会被 ref 行中的一列替换,而不必担心在我的模块中为此创建特定函数每个查询。
我目前的解决方案:
是为每个包含关系的表创建一个视图,并用所需的 ref 值替换所有 fk 列,但是由于我有 6 个表,其中 5 个用 fk,我现在在 db 中有 6 个表和 5 个视图(11 个表),即对我来说真的很困惑,所以有什么更聪明的方法吗?