Re: weird structure - Mailing list pgsql-sql

From Renato De Giovanni
Subject Re: weird structure
Date
Msg-id 39A59E87.B882AB22@viafractal.com.br
Whole thread Raw
In response to weird structure  (rdg@viafractal.com.br)
List pgsql-sql
Yes, Ryan, the idea is to use only one row with all attributes in it.

The structure I described is easy to use when you want to know the attributes
of a single person, and in this case your suggestion is the way to go - I knew
that.

I asked the question considering a specific person_id just to simplify. My real
concern is about retrieving data from more than one person in a query.
If attributes were all columns on "person" table, than a "select
specific_fields from person where conditions=..." would do the job perfectly.
But how could I achieve the same result using that different database schema?

> Does it have to be in one row?
>
> Otherwise, assuming that person_data.d_person_id references person.a_id and
> person_data.d_attribute_id references person_attribute.a_id:
>
> select a.a_name from person p, person_data d, person_attribute a where
> p.p_name = 'UserYou'reLookingFor' AND p.p_id = d.d_person_id AND
> d.d_attribute_id = a.a_id
>
> Would return a list of attributes the person has, one per row.
>
> ----- Original Message -----
> > Consider the following tables/fields:
> > table "person": fields "p_id", "p_name".
> > table "person_attribute": fields "a_id", "a_name".
> > table "person_data": fields "d_person_id", "d_attribute_id",
> > "d_value".
> >
> > Also consider that a person may not have data related to all possible
> > attributes.
> >
> > Using this structure, how could I retrieve in one row with a single
> > select statement all attributes from a person (showing null to
> > attributes that were not registered to him)?
> >
> > Thanks for any suggestion,
> > --
> > Renato
> > Sao Paulo - SP - Brasil
> > rdg@viafractal.com.br




pgsql-sql by date:

Previous
From: "BouSaada Nabil"
Date:
Subject: Dynamic SQL
Next
From: Rodger Donaldson
Date:
Subject: Regular expression query