pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: D'Arcy J.M. Cain <darcy@druid.net>
To: Curtis Scheer <Curtis@DAYCOS.com>
Cc: pgsql-sql@postgresql.org
Cc: postgresql@aranya.com
Subject: Re: Table relationships
Date: Tue, 9 Jan 2007 09:41:13 -0500
Message-ID: <20070109094113.064bae02.darcy@druid.net> (raw)
In-Reply-To: <031936836C46D611BB1B00508BE7345D04DC1BB5@gatekeeper.daycos.com>
References: <031936836C46D611BB1B00508BE7345D04DC1BB5@gatekeeper.daycos.com>

On Mon, 8 Jan 2007 17:07:56 -0600 
Curtis Scheer <Curtis@DAYCOS.com> wrote:
> -> Is there a difference between an address for the customer detail and an
> address for the customer?
> 
> Not really an address is an address, it's a matter of specify an address for
> the customer master record which basically represents an entire customer
> while the customerdetail represents departments within that company that
> might be at a different address then the company's main office for instance.

Could be that you need another table.  Sounds like you have something
like;

   company  <===> address  <===> detail

Now you just have to indicate which address is the primary or head
office.  You can do that with a bool in the address table.  You can
even add a unique, partial index to address to assure that you only
have one head office per company.

Another alternative is to add another table which just holds the
address:

  company  <===>  department  <===>  detail
     ^               ^
     |               |
     \==> address <==/

Obviously the address attached to the company is the head office.  For
departments you can either duplicate the reference to the address table
or have NULL indicate a default to the head office.

There are many possibilities.  Which one is best will depend on
analysing your particular business model.

-- 
D'Arcy J.M. Cain <darcy@druid.net>         |  Democracy is three wolves
http://www.druid.net/darcy/                |  and a sheep voting on
+1 416 425 1212     (DoD#0082)    (eNTP)   |  what's for dinner.



view thread (13+ messages)  latest in thread

Message-ID: <20070109094113.064bae02.darcy@druid.net>
Permalink:  ../20070109094113.064bae02.darcy@druid.net/
Also on:    postgresql.org/message-id/20070109094113.064bae02.darcy@druid.net

 · 

reply

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: darcy@druid.net, Curtis@DAYCOS.com, postgresql@aranya.com
  Subject: Re: Table relationships
  In-Reply-To: <20070109094113.064bae02.darcy@druid.net>

* 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