Я работаю над созданием приложения с Kohana 3.0.7, используя модуль ORM. Я хочу создать объект, например тег, где можно пометить много разных объектов, и эти параметры могут иметь несколько тегов. Итак, допустим, у меня есть 3 модели: Tag, Post и Page. как бы я структурировал таблицы и модели, чтобы сделать эту работу лучше всего?
Вы бы использовали отношения Коханы с множеством сквозных отношений. Примером может служить:
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', ), ); }