pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Daniel M. <xt@nm.ru>
To: pgsql-sql@postgresql.org
Subject: Storing properties in a logical way.
Date: Sun, 05 Sep 2004 20:42:47 -0700
Message-ID: <413BDCB7.10009@nm.ru> (raw)


Hello everybody,

In a database there is a table with items, and each item can have
0 to n properties. The objective is to store information about items'
properties in a mentioned database in a logical and an efficient way.

Usually it is easily done by creating a validation table with a list
of possible properties and then creating a n-to-n relationship by means
of a linking table (hope I use the correct terms here).

But after looking closely at the list of a possible properties, i found
out that some of them depend on others. For example, if item is a
PDF document, it can have an index. But a document can also have an
index with links. Logically, a properties like 'index with links'
don't belong to the verification table - they look like a kind of
a composite field - 'index with links' is not a stand-alone property,
but it also implies that an item also has an 'index' property.
On the other hand, it is impossible to decouple 'index' from
'with links', because the second part won't have any meaning without
the first part.


How can such a kind of data be modeled in a logical way?



view thread (3+ messages)  latest in thread

Message-ID: <413BDCB7.10009@nm.ru>
Permalink:  ../413BDCB7.10009@nm.ru/
Also on:    postgresql.org/message-id/413BDCB7.10009@nm.ru

 · 

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: xt@nm.ru
  Subject: Re: Storing properties in a logical way.
  In-Reply-To: <413BDCB7.10009@nm.ru>

* 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