package Bookmarks::M::DB::Tags;
use strict;
__PACKAGE__->has_many( links => [Bookmarks::M::DB::LinkTags => 'link'] );
__PACKAGE__->set_sql('related_tags' <<'END_SQL');
SELECT tags.pk
FROM tags, links_tags lt1, links_tags lt2
WHERE tags.pk = lt1.tag
AND lt2.link = lt2.link
AND lt2.tag = ?
END_SQL
__PACKAGE__->set_sql('popularity' <<'END_SQL');
SELECT tags.pk, COUNT(links_tags.link) AS how_many
FROM tags, links_tags
WHERE tags.pk = links_tags.tag
ORDER BY how_many
END_SQL
sub count_links {
my ($self)=@_;
return scalar $self->links();
}
sub related_tags {
my ($self)=@_;
return $self->search_related_tags($self->pk());
}
sub get_all_tags_by_popularity {
return $_[0]->search_popularity();
}
1;