Моделирование «многие ко многим» с несколькими типами объектов в Kohana с ORM - PullRequest
1 голос
/ 28 августа 2010

Я работаю над созданием приложения с Kohana 3.0.7, используя модуль ORM. Я хочу создать объект, такой как тег, где могут быть помечены различные типы объектов, и эти параметры могут иметь несколько тегов. Например, у меня есть 3 модели: Tag, Post и Page. как бы я структурировал таблицы и модели, чтобы сделать эту работу лучше?

1 Ответ

3 голосов
/ 29 августа 2010

Вы бы использовали отношение Коханы . Примером может быть:

class Model_Page
{
    protected $_has_many = array(
        'tags' => array(
            'model' => 'tag',
            'foreign_key' => 'page_id',
            'far_key' => 'tag_id',
            'through' => 'pages_tags',
        ),
    );
}

class Model_Post
{
    protected $_has_many = array(
        'tags' => array(
            'model' => 'tag',
            'foreign_key' => 'post_id',
            'far_key' => 'tag_id',
            'through' => 'posts_tags',
        ),
    );
}

class Model_Tag
{
    protected $_has_many = array(
        'pages' => array(
            'model' => 'page',
            'foreign_key' => 'tag_id',
            'far_key' => 'page_id',
            'through' => 'pages_tags',
        ),
        'posts' => array(
            'model' => 'post',
            'foreign_key' => 'tag_id',
            'far_key' => 'post_id',
            'through' => 'posts_tags',
        ),
    );
}
...