Galera, estou fazendo um comercio eletronico, mais ou menos como o submarino…no meu sistema eu quero que busque na categoria livros por isbn, autor, editora e nome do livro, na categoria cds por artista, album e nome do cd, na categoria dvds por ator, diretor, distribuidora, nome do filme, nome original do filme…blz…mas ate agora, estou com muitas tabelas…gostaria de saber se alguem tem uma ideia d como sao as tabelas que o submarino deve ter…ow se alguem sabe como otimizar essas minhas tabelas…ow se n tem problema eu ter muitas tabelas assim…Gostaria da opiniao de vcs…de como vcs fariam isso!!!
Categorias
CREATE TABLE CATEGORIAS (
COD_CATEGORIA INTEGER NOT NULL,
NOME_CATEGORIA VARCHAR(30)
);
Secoes
CREATE TABLE SECOES (
COD_SECAO INTEGER NOT NULL,
NOME_SECAO VARCHAR(50),
COD_CATEGORIA INTEGER NOT NULL
);
Livros
CREATE TABLE AUTOR (
COD_AUTOR INTEGER NOT NULL,
NOME_AUTOR VARCHAR(40)
);
CREATE TABLE AUTOR_LIVROS (
COD_AUTOR INTEGER NOT NULL,
ISBN_LIVRO VARCHAR(10)
);
CREATE TABLE EDITORA (
COD_EDITORA INTEGER NOT NULL,
NOME_EDITORA VARCHAR(30)
);
CREATE TABLE LIVROS (
ISBN_LIVRO VARCHAR(10) NOT NULL,
TITULO_LIVRO VARCHAR(60),
NUM_EDICAO_LIVRO INTEGER,
ANO_LIVRO INTEGER,
COD_EDITORA INTEGER,
ACABAMENTO_LIVRO VARCHAR(15),
PRECO_LIVRO FLOAT,
NUM_PAGINA_LIVRO INTEGER,
TOT_PARCELA_LIVRO INTEGER,
COD_SECAO INTEGER,
LANCAMENTO CHAR(1)
);
Cds
CREATE TABLE GRAVADORA (
COD_GRAVADORA INTEGER NOT NULL,
NOME_GRAVADORA VARCHAR(40)
);
CREATE TABLE GRAVADORA_CDS (
COD_GRAVADORA INTEGER NOT NULL,
COD_CD INTEGER NOT NULL
);
CREATE TABLE CDS (
COD_CD VARCHAR(10) NOT NULL,
TITULO_CD VARCHAR(40),
ANO_CD INTEGER,
PRECO_CD FLOAT,
TOT_PARCELA_CD INTEGER,
COD_SECAO INTEGER NOT NULL,
LANCAMENTO CHAR(1)
);
CREATE TABLE ARTISTA (
COD_ARTISTA INTEGER NOT NULL,
NOME_ARTISTA VARCHAR(40)
);
CREATE TABLE ARTISTA_CDS (
COD_ARTISTA INTEGER NOT NULL,
COD_CD INTEGER NOT NULL
);
Dvds
CREATE TABLE ATOR (
COD_ATOR INTEGER NOT NULL,
NOME_ATOR VARCHAR(40)
);
CREATE TABLE ATOR_DVDS (
COD_ATOR INTEGER,
COD_DVD INTEGER
);
CREATE TABLE DIRETOR (
COD_DIRETOR INTEGER NOT NULL,
NOME_DIRETOR VARCHAR(40)
);
CREATE TABLE DIRETOR_DVDS (
COD_DIRETOR INTEGER,
COD_DVD INTEGER
);
CREATE TABLE DISTRIBUIDORA (
COD_DISTRIBUIDORA INTEGER NOT NULL,
NOME_DISTRIBUIDORA VARCHAR(20)
);
CREATE TABLE DVDS (
COD_DVD INTEGER NOT NULL,
TITULO_DVD VARCHAR(40),
TITULO_ORIGINAL VARCHAR(40),
ANO_DVD INTEGER,
COD_DISTRIBUIDORA INTEGER,
PRECO_DVD FLOAT,
DURACAO_DVD INTEGER,
COR_DVD VARCHAR(20),
LEGENDA_DVD VARCHAR(50),
CENSURA_DVD VARCHAR(10),
TOT_PARCELA_DVD INTEGER,
COD_SECAO INTEGER,
LANCAMENTO CHAR(1)
);