0

我将 datamapper orm 与 codeigniter 一起使用

我的桌子是:

人员 ID、姓名、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 个相关人员设置?我应该如何布置我的桌子?我想和 1 个“人”表呆在一起。

谢谢

4

1 回答 1

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');
....
于 2013-03-15T13:18:27.287 回答