From: | Philip Semanchuk <philip(at)americanefficient(dot)com> |
---|---|
To: | Peter Devoy <peter(at)3xe(dot)co(dot)uk> |
Cc: | "Psql_General (E-mail)" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Enforcing uniqueness on [real estate/postal] addresses |
Date: | 2020-05-11 18:14:29 |
Message-ID: | F7BDBF89-E6AD-4E5B-9DCC-4D17C31CAB3D@americanefficient.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> On May 11, 2020, at 12:55 PM, Peter Devoy <peter(at)3xe(dot)co(dot)uk> wrote:
>
> Hi list
>
> I need to store addresses for properties (as in real estate) so in my
> naivety I created a unique constraint like this:
>
> ALTER TABLE properties
> ADD CONSTRAINT is_unique_address
> UNIQUE (
> description, --e.g. Land north of Foo Cottage
> address_identifier_general,
> street,
> postcode
> );
>
> Of course, if any of the fields are NULL (which they often are) I end
> up with duplicates.
>
> One solution may be to add NOT NULL constraints and use empty strings
> instead of NULL values but, until asking around today, I thought this was
> generally considered bad practice.
>
> Please can anyone recommend a way of approaching this? Perhaps empty strings
> are pragmatic in this situation?
Hi Peter,
I wouldn’t use empty strings in place of NULL. It’s possible to define a partial unique index that has more or less the same effect as a constraint. Have you looked into them?
Cheers
Philip
From | Date | Subject | |
---|---|---|---|
Next Message | Matthias Apitz | 2020-05-11 18:18:10 | Re: PostgreSQL client hangs sometimes on 'EXEC SQL PREPARE sid_sisisinst FROM :select_anw;' |
Previous Message | Peter Devoy | 2020-05-11 16:55:49 | Enforcing uniqueness on [real estate/postal] addresses |