CREATE TABLE public.pro_caracteristica( cod_caracteristica integer NOT NULL, descricao character varying(100) NOT NULL, CONSTRAINT pk_pro_caracteristica PRIMARY KEY (cod_caracteristica) ) TABLESPACE pg_default; ALTER TABLE public.pro_caracteristica OWNER to postgres; COMMENT ON TABLE public.pro_caracteristica IS 'Cadastro de caracteristica de produto'; CREATE TABLE public.pro_caracteristica_opcao( cod_caracteristica integer NOT NULL, cod_opcao integer NOT NULL, valor character varying NOT NULL, CONSTRAINT pk_pro_caracteristica_opcao PRIMARY KEY (cod_caracteristica, cod_opcao), CONSTRAINT fk_pro_caracteristica_opcao FOREIGN KEY (cod_caracteristica) REFERENCES public.pro_caracteristica (cod_caracteristica) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT ) TABLESPACE pg_default; ALTER TABLE public.pro_caracteristica_opcao OWNER to postgres; COMMENT ON TABLE public.pro_caracteristica_opcao IS 'Cadastro de opcao de caracteristica de produto'; CREATE TABLE public.pro_produto_x_caracteristica( filial integer NOT NULL, produto integer NOT NULL, cod_caracteristica integer NOT NULL, cod_opcao integer NOT NULL, CONSTRAINT pk_pro_produto_x_caracteristica PRIMARY KEY (filial, produto, cod_caracteristica, cod_opcao), CONSTRAINT fk_pro_produto_x_caracteristica_produto FOREIGN KEY (filial, produto) REFERENCES public.pro_produto (filial_pro, codigo) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT, CONSTRAINT fk_pro_produto_x_caracteristica_caracteristica FOREIGN KEY (cod_caracteristica, cod_opcao) REFERENCES public.pro_caracteristica_opcao (cod_caracteristica, cod_opcao) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE RESTRICT ) TABLESPACE pg_default; ALTER TABLE public.pro_produto_x_caracteristica OWNER to postgres; COMMENT ON TABLE public.pro_produto_x_caracteristica IS 'Cadastro relacionamento de produto com caracteristica';