From: Jamie Tufnell <diesql@googlemail.com>
To: pgsql-sql@postgresql.org
Subject: Re: Composite UNIQUE across two tables?
Date: Thu, 13 Mar 2008 02:42:49 +0000
Message-ID: <b0a4f3350803121942k533d5028s9b94a05aea00695e@mail.gmail.com> (raw)
In-Reply-To: <5d0f60990803111203m18345c5ata6f4d407867ed60d@mail.gmail.com>
References: <47D100E0.A3DD.0030.0@indicator.be>
<20080307083421.26A9D700009D@mwinf2f21.orange.fr>
<47D110C0.A3DD.0030.0@indicator.be>
<b0a4f3350803070746w17c7c29dhdef57ada7568cdc0@mail.gmail.com>
<b0a4f3350803090827p61b075c0rd27e63c2cb23ab93@mail.gmail.com>
<5d0f60990803111203m18345c5ata6f4d407867ed60d@mail.gmail.com>
Hi Dirk,
On 3/11/08, Dirk Jagdmann <jagdmann@gmail.com> wrote:
> I vote against duplicating site_group_id in the users table and the
> proposed unique constraint with a function. Because all those might
> fail, if you ever want to change the relationship between a site and a
> site group.
Good point!
> My advise would be to have two triggers for insert/update on the site
> and users table that check the uniqueness of the username with the
> site_group. A have made some tests with inserts and updates on the
> existing users and sites and these two functions seem to work.
I think this is the way that I'll go. I'd hoped to somehow express this
solely in the design, if you know what i mean (e.g. without writing
SPs), but it looks like this is the best way to do it.
> One remark about your schema: If you use PostgreSQL, use the "text"
> datatype for strings, since you don't limit yourself with the string
> length.
[snip]
For some reason I assumed varchar had an advantage over text,
but a quick check of the docs suggests that's not the case. Thanks
for this tip! :-)
Thank you for your taking the time to write this up, it's very much
appreciated.
Cheers,
J.
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-sql@postgresql.org
Cc: diesql@googlemail.com
Subject: Re: Composite UNIQUE across two tables?
In-Reply-To: <b0a4f3350803121942k533d5028s9b94a05aea00695e@mail.gmail.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