Enforcing uniqueness on [real estate/postal] addresses - Mailing list pgsql-general

From Peter Devoy
Subject Enforcing uniqueness on [real estate/postal] addresses
Date
Msg-id CABoFc_im50V4DgcOddDiPyDWEFkVR==P26q8fBLNdgcpx--rSw@mail.gmail.com
Whole thread Raw
Responses Re: Enforcing uniqueness on [real estate/postal] addresses  (Philip Semanchuk <philip@americanefficient.com>)
Re: Enforcing uniqueness on [real estate/postal] addresses  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: Enforcing uniqueness on [real estate/postal] addresses  ("David G. Johnston" <david.g.johnston@gmail.com>)
Re: Enforcing uniqueness on [real estate/postal] addresses  (Paul Jungwirth <pj@illuminatedcomputing.com>)
Re: Enforcing uniqueness on [real estate/postal] addresses  (Tim Cross <theophilusx@gmail.com>)
List pgsql-general
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?

Kind regards


Peter



pgsql-general by date:

Previous
From: Laurenz Albe
Date:
Subject: Re: Hash partitioning, what function is used to compute the hash?
Next
From: Philip Semanchuk
Date:
Subject: Re: Enforcing uniqueness on [real estate/postal] addresses