O exemplo de utilização de combos dinâmicas envolve a relação marcas e modelos de veículos, onde cada marca pode ter vários modelos e o modelo pode ser apenas de uma marca específica. Não serão abordado maiores detalhes pois não é o foco do tutorial.
Como dito anteriomente, será utilizado o SGBD PostgreSQL, com isso segue o script para criação do banco de dados.
Para facilitar a criação da base de dados e suas tabelas, utilizei o programa PgAdmin III, que pode ser encontrado em:
No PgAdmin crie uma base de dados com o nome teste, após abra a ferramenta de edição de comandos SQL e copie e cole os comandos sql para criação das tabelas já com os dados.
--
-- Name: marcas; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
--
CREATE TABLE marcas (
id_marca serial NOT NULL,
marca character varying(100) NOT NULL
);
ALTER TABLE public.marcas OWNER TO postgres;
--
-- Name: COLUMN marcas.id_marca; Type: COMMENT; Schema: public; Owner: postgres
--
COMMENT ON COLUMN marcas.id_marca IS 'Chave primária da tabela Marcas';
--
-- Name: marcas_id_marca_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('marcas', 'id_marca'), 7, true);
SET default_with_oids = false;
--
-- Name: modelos; Type: TABLE; Schema: public; Owner: postgres; Tablespace:
--
CREATE TABLE modelos (
id_marca bigint NOT NULL,
id_modelo serial NOT NULL,
modelo character varying(100) NOT NULL
);
ALTER TABLE public.modelos OWNER TO postgres;
--
-- Name: modelos_id_modelo_seq; Type: SEQUENCE SET; Schema: public; Owner: postgres
--
SELECT pg_catalog.setval(pg_catalog.pg_get_serial_sequence('modelos', 'id_modelo'), 11, true);
--
-- Data for Name: marcas; Type: TABLE DATA; Schema: public; Owner: postgres
--
INSERT INTO marcas (id_marca, marca) VALUES (1, 'Astra');
INSERT INTO marcas (id_marca, marca) VALUES (2, 'Vectra');
INSERT INTO marcas (id_marca, marca) VALUES (3, 'Corsa');
INSERT INTO marcas (id_marca, marca) VALUES (4, 'Celta');
INSERT INTO marcas (id_marca, marca) VALUES (5, 'Zafira');
INSERT INTO marcas (id_marca, marca) VALUES (6, 'Blazer');
INSERT INTO marcas (id_marca, marca) VALUES (7, 'S10');
--
-- Data for Name: modelos; Type: TABLE DATA; Schema: public; Owner: postgres
--
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (1, 1, 'advantage');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (1, 3, 'comffort');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (1, 4, 'supersport');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (1, 5, 'cd');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (2, 6, 'cd');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (2, 7, 'challenge');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (3, 8, 'seddan');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (3, 9, 'hatch');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (3, 10, 'sport');
INSERT INTO modelos (id_marca, id_modelo, modelo) VALUES (4, 11, 'Pelado');
--
-- Name: modelos_pkey; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
--
ALTER TABLE ONLY modelos
ADD CONSTRAINT modelos_pkey PRIMARY KEY (id_marca, id_modelo);
--
-- Name: public; Type: ACL; Schema: -; Owner: postgres
--
REVOKE ALL ON SCHEMA public FROM PUBLIC;
REVOKE ALL ON SCHEMA public FROM postgres;
GRANT ALL ON SCHEMA public TO postgres;
GRANT ALL ON SCHEMA public TO PUBLIC;
--
-- PostgreSQL database dump complete
--
Este arquivo foi criado com o comando:
$ pg_dump -F p -c-D teste > /combos.sql