CREATE TABLE pro_produto_variacao( codigo integer NOT NULL, descricao character varying(100) NOT NULL, CONSTRAINT pk_pro_produto_variacao PRIMARY KEY (codigo) )WITH ( OIDS = FALSE ) TABLESPACE pg_default; COMMENT ON TABLE public.pro_produto_variacao IS 'Cadastro de tipos de variacao de produtos'; CREATE TABLE pro_produto_variacao_item( codigo integer NOT NULL, codigo_item integer NOT NULL, descricao character varying (50) NOT NULL, CONSTRAINT pk_pro_produto_variacao_item PRIMARY KEY(codigo, codigo_item), CONSTRAINT fk_pro_produto_variacao_item FOREIGN KEY (codigo) REFERENCES public.pro_produto_variacao (codigo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT )WITH ( OIDS = FALSE ) TABLESPACE pg_default; COMMENT ON TABLE public.pro_produto_variacao_item IS 'Cadastro de item do tipo de variacao de produtos'; CREATE TABLE pro_produto_x_variacao( filial integer NOT NULL, produto integer NOT NULL, variacao integer NOT NULL, variacao_item integer NOT NULL, CONSTRAINT pk_pro_produto_x_variacao_variacao PRIMARY KEY(filial, produto, variacao, variacao_item), CONSTRAINT fk_pro_produto_x_variacao FOREIGN KEY (variacao, variacao_item) REFERENCES public.pro_produto_variacao_item (codigo, codigo_item) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT, CONSTRAINT fk_pro_produto_x_variacao_produto FOREIGN KEY (filial, produto) REFERENCES public.pro_produto (filial_pro, codigo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT )WITH ( OIDS = FALSE ) TABLESPACE pg_default; COMMENT ON TABLE public.pro_produto_variacao_item IS 'Cadastro de item do tipo de variacao de produtos';