Search Postgresql Archives

Re: timestamp as primary key?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Oct 19, 2006, at 10:30 , John D. Burger wrote:

cckramer wrote:

I have table for online chat system that keep messages sent between users.

Question: is it okay to use timestamp as primary key, or there is
possibility of collision? (Meaning two processes may INSERT into table
within same millisecond.) It is a web application.

tometzky wrote:

If your insert fail you can always try again after some random short
time.

But then the timestamp field does not accurately represent the actual time of the event. If you really want a primary key, and you really don't want to just use a sequence default, I would make the key a composite:

  PRIMARY KEY (user_id_from, user_id_to, message_time)

This should cut way down on the possibility of key collision.

Only if each message is contained in its own transaction since now() is effectively a constant throughout a transaction. In this case, I would choose a surrogate key since it is likely that the table will be referenced.

-M


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux