Como vocês podem ver, Cod_Material é uma chave estrangeira para as tabelas especializadas Livro e Periodico, porém isso não parece ser permitido.
Minha pergunta então é: Como fazer para Cod_Material ser tanto do tipo ISBN(Livro) quanto ISSN(Periodico) ?
Abaixo vou colocar meu códico:
CREATE TABLE Material(
Titulo VARCHAR(120) NOT NULL,
Editora VARCHAR(50) NOT NULL,
Ano INT NOT NULL
);
CREATE TABLE Livro (
ISBN VARCHAR(13),
Area VARCHAR(50) NOT NULL,
Autor VARCHAR(50) NOT NULL,
PRIMARY KEY (ISBN)
) inherits (Material);
CREATE TABLE Periodico (
ISSN VARCHAR(10),
Edicao VARCHAR(10) NOT NULL,
Numero INT,
PRIMARY KEY (ISSN)
) inherits (Material);
CREATE TABLE Item_Empresta(
COD_Item VARCHAR(10) ,
Quantidade INT NOT NULL,
Grupo VARCHAR(50) ,
Data_Inicio DATE NOT NULL,
Data_Devolucao DATE NOT NULL,
CPF_Funcionario VARCHAR(14),
Mat_Aluno VARCHAR(10),
Mat_Bolsa VARCHAR(10),
ID_Material VARCHAR(13) NOT NULL,
PRIMARY KEY(COD_Item),
CONSTRAINT Referencia_Empresta_Material
FOREIGN KEY (ID_Material) REFERENCES Livro(ISBN) ON DELETE
RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (ID_Material) REFERENCES Periodico(ISSN) ON DELETE
RESTRICT ON UPDATE CASCADE
)
Observe que do jeito que está meu código, se eu tentar inserir um material Periodico dá erro pois a primeira restrição é livro então ele informa que não há livro com tal Identificador.
Pergunta
kikokairos
Salve galera,
Estou com dúvidas quanto a Herança...
Primeiro:
Usei a regra que faz uma relação para cada entidade. Ex:
Material(Titulo, Ano, Edição) - Generalização
Livro(ISBN, Autor, Editora) - Especialização
Periodico(ISSN, Nro, Área) - Especialização
Tudo ok, até então. Porém quando fui criar a tabela Item_Emprestados apareceu uma dúvida, veja:
Item_Emprestados(ID_Item, Qtd, Data, ID_Aluno, Cod_Material)
Como vocês podem ver, Cod_Material é uma chave estrangeira para as tabelas especializadas Livro e Periodico, porém isso não parece ser permitido.
Minha pergunta então é: Como fazer para Cod_Material ser tanto do tipo ISBN(Livro) quanto ISSN(Periodico) ?
Abaixo vou colocar meu códico:
Observe que do jeito que está meu código, se eu tentar inserir um material Periodico dá erro pois a primeira restrição é livro então ele informa que não há livro com tal Identificador.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.