我使用datamapper orm和codeigniter
我的表是:
人 id,name,related_person1_id,related_person2_id
人可以有1个related_person1,1个related_person2
如何在模型文件中设置关系?
在文件中描述:
class Person extends DataMapper {
$has_many = array(
'related_person' => array(
'class' => 'person',
'other_field' => 'person',
'reciprocal' => TRUE
),
'person' => array(
'other_field' => 'related_person',
'reciprocal' => TRUE
)
);
}
如何为超过1名相关人员设置?我怎么把桌子摆好?我想留在一个“人”桌上。
THX
答案 0 :(得分:0)
最好的办法是为关系创建一个单独的表。
所以你有个人表:
id:int
name:text
然后是关系表
id:int
person_id:int
related_to_person_id:int
relationship
通过这种方式,您可以根据需要为每个人提供尽可能多的关系。
人:
id | name
1 | Jimmy Doublechin
2 | Opie Hardabs
3 | Anthony Predator
关系:
id | person_id | related_to_person_id | relationship
1 | 1 | 2 | lover
2 | 1 | 3 | best buddy evar
3 | 3 | 2 | Mother
然后
class Person extends Datamapper {
public $has_many = array('relationships');
...
class Relationships extends Datamapper {
public $has_one = array('person');
....