Thread: Join a varchar array

Join a varchar array

From
Robin Ericsson
Date:
Hi,

I have a field in which I save the follow:
{{8,0.58},{9,972420},{10,239544},{6,0.49},{7,0.63}}

The first field is a reference to an id in another table and the second
field is a value.

Can these values be used somehow in a select query to join the other
table?

I don't mind getting them on different rows but I would prefer to
get them back as an array.


regards
Robin


Re: Join a varchar array

From
Richard Huxton
Date:
Robin Ericsson wrote:
> Hi,
>
> I have a field in which I save the follow:
> {{8,0.58},{9,972420},{10,239544},{6,0.49},{7,0.63}}
>
> The first field is a reference to an id in another table and the second
> field is a value.
>
> Can these values be used somehow in a select query to join the other
> table?

You appear to be using the array as a replacement for a table. Don't do
that. From the little information you've provided, it looks like you
want a separate table (a_ref, b_ref, float_val) where a_ref references
the current table, b_ref the other table.

--
   Richard Huxton
   Archonet Ltd

Re: Join a varchar array

From
Robin Ericsson
Date:
On Thu, 2004-06-17 at 11:38, Richard Huxton wrote:
> Robin Ericsson wrote:
> > Hi,
> >
> > I have a field in which I save the follow:
> > {{8,0.58},{9,972420},{10,239544},{6,0.49},{7,0.63}}
> >
> > The first field is a reference to an id in another table and the second
> > field is a value.
> >
> > Can these values be used somehow in a select query to join the other
> > table?
>
> You appear to be using the array as a replacement for a table. Don't do
> that. From the little information you've provided, it looks like you
> want a separate table (a_ref, b_ref, float_val) where a_ref references
> the current table, b_ref the other table.

Thats correct, I choose this way because there will be a lot of entries
and it will grow pretty quickly, but maybe postgres will be able to
handle this?

If I went for a separate table it will contain over 3 milj. entries
within in a couple of weeks and still grow after that but not at the
same speed as the first weeks.



regards
Robin


Re: Join a varchar array

From
Richard Huxton
Date:
Robin Ericsson wrote:
> On Thu, 2004-06-17 at 11:38, Richard Huxton wrote:
>>
>>You appear to be using the array as a replacement for a table. Don't do
>>that. From the little information you've provided, it looks like you
>>want a separate table (a_ref, b_ref, float_val) where a_ref references
>>the current table, b_ref the other table.
>
>
> Thats correct, I choose this way because there will be a lot of entries
> and it will grow pretty quickly, but maybe postgres will be able to
> handle this?

If it can't handle the data in tables, why should it handle it in
arrays? You're using a relational database, stick to relations.

> If I went for a separate table it will contain over 3 milj. entries
> within in a couple of weeks and still grow after that but not at the
> same speed as the first weeks.

There are people here with hundreds of millions of rows in some tables.
Keep your design simple and clean, apply indexes once you have some idea
of what activity your system will see and subscribe to the performance list.

PG has some odd corner-cases where performance could be better, but on
the whole it does an excellent job of coping with large numbers of users
and large amounts of data.

--
   Richard Huxton
   Archonet Ltd