pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: lists@on-track.ca
To: pgsql-performance@postgresql.org
Subject: Optmal tags design?
Date: Wed, 18 Jul 2007 14:26:00 -0700 (PDT)
Message-ID: <1271.69.31.174.216.1184793960.squirrel@webmail.ctgameinfo.com> (raw)

I am planning to add a tags (as in the "web 2.0" thing) feature to my web
based application. I would like some feedback from the experts here on
what the best database design for that would be.

The possibilities I have come up with are:
* A tags table containing the tag and id number of what it links to.
select pid from tags where tag='bla'
select tag from tags where pid=xxx.

* a tags table where each tag exists only once, and a table with the tag
ID and picture ID to link them together.

select pid from tags inner join picture_tags using(tag_id) where tag='bla'
select tag from tags inner join picture_tags using(tag_id) where pid='xxx'

* A full text index in the picture table containing the tags

select pid from pictures where tags @@ to_tsquery('bla')
(or the non-fti version)
select pid from pictures where tags ~* '.*bla.*'

select tags from pictures where pid=xxx;



view thread (3+ messages)  latest in thread

Message-ID: <1271.69.31.174.216.1184793960.squirrel@webmail.ctgameinfo.com>
Permalink:  ../1271.69.31.174.216.1184793960.squirrel@webmail.ctgameinfo.com/
Also on:    postgresql.org/message-id/1271.69.31.174.216.1184793960.squirrel@webmail.ctgameinfo.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: lists@on-track.ca
  Subject: Re: Optmal tags design?
  In-Reply-To: <1271.69.31.174.216.1184793960.squirrel@webmail.ctgameinfo.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox