Você pode usar uma chave do tipo UUID. [1]
Com o UUID você elimina o conflito que pode ocorrer com chaves sequenciais.

Exemplo do problema com chaves sequenciais:
Antes de sair da filial, 2 vendedores atualizam os dados de seus
notebooks de acordo com o servidor na filial.
Digamos que 50 é o código do ultimo pedido registrado na filial,
se 2 vendedores fizerem um pedido em seus respectivos notebooks,
teremos conflitos, os 2 irão gerar um código 51.
Na hora de enviar os pedidos dos notebooks para o servidor, você terá problemas.

Com o UUID, os vendedores poderão gerar pedidos até no mesmo segundo
que o código gerado será diferente.

Então, usando UUID você não terá o problema anteriormente descrito
e pela data do pedido é possível saber se é um novo pedido.

O UUID visto na documentação do postgres é bem grande,
mas você pode criar um esquema de unicidade que atenda o seu problema,
unindo por exemplo:
O (código da filial) + (código vendedor) + (data) + (numero sequencial).
1-1-20081025-1
1-1-20081025-2
1-1-20081025-3
2-5-20081025-23


Será que desta maneira não daria certo?

Abraço

-- 
Tarcisio F. Sassara
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a