Boa noite a todos,
Estou desenvolvendo um sistema multiempresa. No PostgreSQL, seria possível criar uma sequence composta automática?
por exemplo:
As chaves primarias ta minha tabela carro seria: carro_id e empresa_id
carro_id,empresa_id
1,1
2,1
1,2
3,1
2,2
3,2
4,1
acho que não, mas não faz sentindo nenhum vc fazer isso…
pq não cria 2 colunas uma com o id_carro e outra empresa_id?
Boa noite Cleiton, tudo bem? Acho que eu nao tenha me expressei direito.
A base tem duas colunas, tem o carro_id e empresa_id. Eu gostaria de atrelar a sequence (carro_id) ao campo empresa_id.
Deixa ver se eu entendi, a sua idéia é que para cada empresa os carros tenham id sequenciais certo?
Ou seja, empresa 1 teria carro 1,2 e 3. Empresa 2 teria carro 1,2 e 3, é isso?
A primeira pergunta que eu faço é: por que você precisa disso? O id é só uma forma de identificar um carro, nao deveria significar nada para um usuário, por exemplo. Você nao precisaria de uma chave composta pra carros, crie uma sequence simples para carro id.
Essa idéia de nao ter furos numa sequência de ids costuma gerar uma enorme dor de cabeça (quando carros sao apagados e id deletados, quando um rollback ocorre durante a inserçao, etc) e nao costuma ter um bom motivo pra se querer isso.
Id_empresa da tabela empresa vai ter uma sequence e id_carro da tabela carro vai ter outra sequence
Na tabela carro_empresa terá a pk composta por id_empresa e id_carro que também serao fk
Bom dia AbelBueno,
É exatamente isso. Apesar de eu concordar com voce, infelizmente o cliente quer desse modo.
É o típico caso que o cliente nao sabe o que tá pedindo. O especialista na parte técnica é você e nao eles (senao nao estariam te contratando).
Se eles querem realmente ver um “id” que seja sequencial, eu recomendo você criar um campo para esse código, definido via código, respeitando transaçoes, que nao seja vinculado a chave primárias das tabelas. Daí você nao nunca exiba a chave primária para usuários, apenas esse campo de código.