SERIAL vs. OIDs
Seeking informed opinion on what is better to use as a unique row id for
linking tables together in a normalized database, a SERIAL field or the
pgsql OID. This is for an intranet application with a small user base,
but I'd like to make it robust and scalable where it is easy to do so.
My conclusions so far:
OIDs:
Pros:
* They're already there; save a couple bytes per row
* Specific method to retrieve after INSERT (maybe faster than SELECT
on the sequence)
Cons:
* Not serial by table; hard to build linked table 'by hand'
* not pure SQL
SERIAL:
Pros:
* Based on fairly vanilla SQL
* Easier to reproduce all or part of a db on a dump/restore
Cons:
* Performance?
* Extra id field redundant
I'm sure I'm missing something, and I'm not entirely sure how to weight
the points I've got. Advice appreciated.
Please CC me. I subscribed to the digest.
Jay
OIDs Cons:
* The code executend in triggers (written in plpgsql) can't know the OID
of the inserted/updated/deleted row.
This problem make me pass from OIDs to SERIALs, 'cause I need to know an
identifier of the row in order to make referential integrity...and I wasn't able
to obtain that with OIDs.
If someone know a work-around to this problem, please let me know...
Paolo Salvn
Show quoted text
Date: Sun, 29 Aug 1999 22:52:11 +0000
From: Jay Bloodworth <jay@dokodiner.com>
Subject: SERIAL vs. OIDsSeeking informed opinion on what is better to use as a unique row id for
linking tables together in a normalized database, a SERIAL field or the
pgsql OID. This is for an intranet application with a small user base,
but I'd like to make it robust and scalable where it is easy to do so.
My conclusions so far:OIDs:
Pros:
* They're already there; save a couple bytes per row
* Specific method to retrieve after INSERT (maybe faster than SELECT
on the sequence)Cons:
* Not serial by table; hard to build linked table 'by hand'
* not pure SQLSERIAL:
Pros:
* Based on fairly vanilla SQL
* Easier to reproduce all or part of a db on a dump/restoreCons:
* Performance?
* Extra id field redundantI'm sure I'm missing something, and I'm not entirely sure how to weight
the points I've got. Advice appreciated.Please CC me. I subscribed to the digest.
Jay
Import Notes
Reference msg id not found: 199908300302.XAA46301@hub.org | Resolved by subject fallback