schema::articles->has_many(taglinks => 'schema::links', 'article'); schema::links->belongs_to(article => 'schema::articles'); schema::links->belongs_to(tag => 'schema::tags'); schema::tags->has_many(articlelinks => 'links', 'tag'); schema::articles->many_to_many(tags => taglinks => 'tag'); schema::tags->many_to_many(articles => articlelinks => 'article');