Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida em Chave Primária e Estrangeira usando Herança...


kikokairos

Pergunta

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:

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.

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...