none
Relacionamentos de tabelas

    Question

  • Olá pessoal.

     

    Estou criando um Banco de Dados para uma livraria como exercício apenas e gostaria de saber qual o modo correto para criar o seguinte relacionamento:

     

     

    Se a tabela CAT_LIVRO já está relacionada com a tabela SUB-CAT_LIVRO, existe necessidade de haver um campo FK CAT_LIVRO na tabela LIVRO e o relacionamento entre as mesmas?

    A aplicação deverá mostrar a categoria e sub-categoria de cada livro no momento da visualização.

    Se puderem ajudar,

    Obrigado.

    Rodrigo

     


    Rodrigo Rocha
    Tuesday, January 31, 2012 12:00 AM

Answers

  • Boa Noite,

    A princípio não é necessário, pois, se a subcategoria já identifica a categoria, manter cat_livro_id na tabela de livro é uma redundância e pode potencialmente introduzir inconsistências. Ainda assim, existem algumas situações em que isso pode ser permitido quando falamos de desnormalização (do tipo COPY COLUMN) ou situações em que uma subcategoria pode mudar de categoria e é necessário manter o histórico (embora isso não necessariamente deva ser feito nessa tabela).

    Eu sugiro retirar essa coluna da tabela livro. Vá pela normalização mesmo...

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    Tuesday, January 31, 2012 2:05 AM
    Moderator

All replies

  • Boa Noite,

    A princípio não é necessário, pois, se a subcategoria já identifica a categoria, manter cat_livro_id na tabela de livro é uma redundância e pode potencialmente introduzir inconsistências. Ainda assim, existem algumas situações em que isso pode ser permitido quando falamos de desnormalização (do tipo COPY COLUMN) ou situações em que uma subcategoria pode mudar de categoria e é necessário manter o histórico (embora isso não necessariamente deva ser feito nessa tabela).

    Eu sugiro retirar essa coluna da tabela livro. Vá pela normalização mesmo...

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    Tuesday, January 31, 2012 2:05 AM
    Moderator
  • Gustavo,

     

    Obrigado vou retirar CAT_LIVRO_ID da tabela livro sim. As sub-categorias não vão ser alteradas.

    Também vou usar esse conceito em outras tabelas da base de dados.


    Rodrigo Rocha
    Tuesday, January 31, 2012 1:22 PM