From: | "John Sidney-Woollett" <johnsw(at)wardbrook(dot)com> |
---|---|
To: | "Anthony Best" <abest(at)digitalflex(dot)net> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Sequence question. |
Date: | 2003-12-17 07:57:24 |
Message-ID: | 1294.192.168.0.64.1071647844.squirrel@mercury.wardbrook.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
How about using two tables; one to hold the keyword and its (last
allocated) sequence value, and the second to store your data as below.
create table Keyword (
keyword varchar(32),
sequence integer,
primary key(keyword)
)
create table Data (
id serial,
sequence int,
keyword varchar(32),
text text
)
Add a trigger to the Data table for Insert so that it joins to the
(parent) keyword table and increments the keyword.sequence value, and
places that into the Data.sequence value.
You will get 'holes' in the keyword sequencing when you delete data from
the Data table. If that's a problem then you will need an alternative
design.
Hope that helps.
John Sidney-Woollett
Anthony Best said:
> I'm working on an idea that uses sequences.
>
> I'm going to create a table like this:
>
> id serial,
> sequence int,
> keyword varchar(32),
> text text
>
> for every keyword there will be a uniq sequence for it eg:
>
> id, sequence, keyword
> 1, 1, foo, ver1
> 2, 1, bar, bar ver1
> 3, 2, foo, ver2
> 4, 2, bar, bar ver2
> etc...
>
> I could have one sequence for all keyword which would be 1,3, etc... I
> would be prefer to have them in sequence. I'm sure someone has ran into
> this before, any ideas?
>
> Anthony.
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo(at)postgresql(dot)org
>
From | Date | Subject | |
---|---|---|---|
Next Message | Marek Lewczuk | 2003-12-17 07:59:03 | Sequence name with SERIAL type |
Previous Message | Shridhar Daithankar | 2003-12-17 07:08:28 | Re: Firebird and PostgreSQL at the DB Corral. |