On Thu, 15 Jan 1998, Bryan Basham wrote:
>
> > OIDs are a bastardization of the relational model. If you have to keep
> > them, then do so, but their use should be SEVERELY discouraged.
>
> Explain yourself, please.
>
> In my opinion, I view the OID in the same way as I view the SERIAL datatype
> in Informix. It is usually a primary key field in a table. On an insert,
> the DBMS will increment the current serial-maximum (for that table) and insert
> the new serial value into that field; thus creating a unique identifier.
>
> There are differences between OID and SERIAL. The main difference is that
> the OID field (always called 'oid') is always present whereas a DB designer
> explicitly creates 'id' fields (of SERIAL type). Thus, postgresql treats
> every table as an object (which is not always the case).
Major problem with OID: OIDs are sequenced across the database,
not the table. ie. tableA inserts with OID #1, tableB inserts with OID
#2, tableA inserts next record with OID #3, tableC then gets #4, etc...
And...# of OIDs is finite...so if you have a lot of tables with
alot of data in each...you run the risk of running out.
In this sense, sequences are the better alternative, but again,
they are a newer feature to PostgreSQL then the code that I wrote using
OIDs