From: Asko Oja <ascoja@gmail.com>
To: Sebastian Ritter <ritter.sebastian@gmail.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: Database normalization
Date: Tue, 28 Aug 2007 16:00:55 +0300
Message-ID: <ecd779860708280600t403b6652r8c0d3b955351aac6@mail.gmail.com> (raw)
In-Reply-To: <99b656cb0708280447x4eb7c45axec01c8d0ebc6c82d@mail.gmail.com>
References: <99b656cb0708210709j5182b73cna63a2d275efa0e84@mail.gmail.com>
<99b656cb0708280447x4eb7c45axec01c8d0ebc6c82d@mail.gmail.com>
Hi
I would create one table to log updates with type field and one id filed
that contains either client id or service id according to type. On such a
table i would forget about foreign keys (thay are better to be avoided
anyway if you have millions of records in tables).
That way you can share code that displays update history or even create some
generic components.
In my experience normalized databases have ended up with hundreds of tables
and code and screen generation that is very far from what users actually
need. Denormalizing and refactoring these databases reduces number of tables
by magnitude.
Regards,
Asko
On 8/28/07, Sebastian Ritter <ritter.sebastian@gmail.com> wrote:
>
> Hello,
>
> >
> > I have a fairly basic question about database design where im not sure
> > which approach is considered correct.
> >
> > I have two different entities: Clients and Services. Both allow users to
> > add progressive updates about the two entities.
> >
> > The update/message format is exactly the same for both. Should I make
> > two different tables:
> >
> > client_updates and service_updates
> > or
> > one table with extra columns : is_client, client_id, service_id, where
> > either client_id or service_id would be null depending on the is_client
> > boolean?
> >
> > The major problem is simply relating the foreign key in the updates
> > table back to the correct entity, client or service.
> >
> > Regards,
> > Sebastian
> >
> >
>
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: ascoja@gmail.com, ritter.sebastian@gmail.com
Subject: Re: Database normalization
In-Reply-To: <ecd779860708280600t403b6652r8c0d3b955351aac6@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