Re: How to do unique users

From: Dustin Sallings <dustin+postgres(at)spy(dot)net>
To: gearond(at)cvc(dot)net
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: How to do unique users
Date: 2003-02-09 03:56:08
Message-ID: Pine.OSX.4.50.0302081953200.1556-100000@dhcp-185.west.spy.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Around 03:09 on Feb 9, 2003, gearond(at)cvc(dot)net said:

# I have the following tables (mucho simplified):
#
# usrs{
# serial usr_id,
# var(54) username);
#
# addrs(
# serial addr_id,
# var(54) addr};
#
# usr_addr_type(
# serial usr_addr_type_id,
# var(16) type -- one of which is 'primary'};
#
# usr_addrs{
# int4 usr_id, --FK to usrs table
# int4 addr_id, -- FK to addrs table
# int4 usr_addr_type_id -- FK to usr_addr_type table);
#
# ================================
# My problem: The usrs can have as many addresses as there are types. The
# addresses are also used for 'org_addrs' in combination with 'org_addr_types'.
# (This explains the 'usr_addrs' table)
#
# I want to EFFECTIVELY do a unique index on:
#
# 'usrs.username' their 'primary' address in usr_addrs'. How would I have many
# addresses in 'usr_addrs' for a particular address, but one of them used for
# uniqueness of the of the 'usr'
# ?

The easiest way is to have a primary address ID on the user table
then have a mapping for alternate addresses.

Otherwise, you can do what you're asking with a trigger.

--
SPY My girlfriend asked me which one I like better.
pub 1024/3CAE01D5 1994/11/03 Dustin Sallings <dustin(at)spy(dot)net>
| Key fingerprint = 87 02 57 08 02 D0 DA D6 C8 0F 3E 65 51 98 D8 BE
L_______________________ I hope the answer won't upset her. ____________

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Martin Hurst 2003-02-09 05:08:59 table row count
Previous Message gearond 2003-02-09 03:09:39 How to do unique users