table referencing several others

From: Louis-David Mitterrand <vindex+lists-pgsql-general(at)apartia(dot)org>
To: pgsql-general(at)postgresql(dot)org
Subject: table referencing several others
Date: 2007-05-28 09:26:00
Message-ID: 20070528092600.GA8134@apartia.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

To support a forum application I have a "forum" table:

Column | Type
-------------+-----------------------------
created_by | integer
created_on | timestamp without time zone
modified_by | integer
modified_on | timestamp without time zone
id_forum | integer
id_parent | integer
subject | text
message | text
id_show | integer
id_thread | integer
id_person | integer

The id_show and id_person columns are meant to point to a show or person
object about which the specific forum thread is started (threads can
also have a "free" subject and these fields are then empty).

Now I'd like to add forums about locations (theatres, museums, etc.) so
I am thinking about adding an id_location column, but this method seems
a bit inelegant to me:

- every subsequent message of the thread will carry these useless fields
(only the first message in thread uses one of them),

- if I want to connect a forum to a new type of object, yet a new
id_<object> will be required,

Is there a better way to have a single field that can relate with
several objects and still benefit from integrity checks?

Thanks,

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Teodor Sigaev 2007-05-28 09:37:27 Re: crash creating tsearch2 index
Previous Message Chuck D. 2007-05-28 04:34:21 Re: Geographic data sources, queries and questions