Re: timestamp as primary key?

Поиск
Список
Период
Сортировка
От AgentM
Тема Re: timestamp as primary key?
Дата
Msg-id 6EA95CE0-6535-425B-842C-8568DF5FEFFD@themactionfaction.com
обсуждение исходный текст
Ответ на Re: timestamp as primary key?  ("John D. Burger" <john@mitre.org>)
Ответы Re: timestamp as primary key?  ("Jim C. Nasby" <jim@nasby.net>)
Список pgsql-general
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

В списке pgsql-general по дате отправления:

Предыдущее
От: Ray Stell
Дата:
Сообщение: Re: hardware failure - data recovery
Следующее
От: Chris Browne
Дата:
Сообщение: Re: Stats Collector Won't Start