0

codeigniter で datamapper orm を使用しています

私のテーブルは次のとおりです。

個人ID、名前、関連者1_id、関連者2_id

person は related_person1 を 1 つ、 related_person2 を 1 つ持つことができます

モデル ファイルで関係を設定するにはどうすればよいですか?

ドキュメントで説明されています:

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

4

1 に答える 1

0

リレーションシップ用に別のテーブルを作成することをお勧めします。

これで person テーブルができました:

id:int
name:text

次に関係テーブル

id:int
person_id:int
related_to_person_id:int
relationship

このようにして、1 人あたりの関係を必要な数だけ持つことができます。

人:

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 に答える