Re: [pgbr-geral] Relacionamento entre tabelas - integer e array

2015-05-20 Por tôpico Matheus de Oliveira
On Wed, May 20, 2015 at 12:25 AM, Danilo Silva danilo.dsg.go...@gmail.com
wrote:

 Tenho as tabela cargos e funcionários:

 CREATE TABLE _cargos (
 car_codcargo integer[],
 ...
 );
 ...
 CREATE TABLE _funcionarios (
 fun_codfunc serial,
 fun_codcargo integer[] NOT NULL,
 ...
 );
 ...

 É possível criar relacionamento entre as duas tabelas, para que seja
 possível somente inserir na tabela funcionario códigos de cargos que
 existam na tabela cargos?


Não.

Existiu uma discussão para implementar isso, e até mesmo um patch. Mas não
foi pra frente.

Você pode fazer com triggers, mas não é tão fácil quanto parece, por causa
da concorrência. O melhor mesmo nesse caso seria utilizar uma tabela de
ligação, modelo tradicional.

Atenciosamente,
-- 
Matheus de Oliveira
Analista de Banco de Dados
Dextra Sistemas - MPS.Br nível F!
www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Relacionamento entre tabelas - integer e array

2015-05-19 Por tôpico Danilo Silva
Pessoal,

Tenho as tabela cargos e funcionários:

CREATE TABLE _cargos (
car_codcargo integer[],
car_nome text NOT NULL,
CONSTRAINT _car_pk PRIMARY KEY (car_codcargo)
);

INSERT INTO _cargos VALUES
(1,'MECANICO'),(2,'SOLDADOR'),(3,'AUXILIAR'),(4,'VENDEDOR'),(5,'CONTADOR');

CREATE TABLE _funcionarios (
fun_codfunc serial,
fun_codcargo integer[] NOT NULL,
fun_nome text NOT NULL,
CONSTRAINT _fun_pk PRIMARY KEY (fun_codfunc)
);

INSERT INTO _funcionarios VALUES (1,ARRAY[1],'AAA');
INSERT INTO _funcionarios VALUES (2,ARRAY[1],'AAB');
INSERT INTO _funcionarios VALUES (3,ARRAY[1,2],'AAC');

É possível criar relacionamento entre as duas tabelas, para que seja
possível somente inserir na tabela funcionario códigos de cargos que
existam na tabela cargos?

[]s
Danilo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral