Duvida modelo de dados relacional

Boa tarde pessoal! To fazendo um trabalho da faculdade, e gostaria de pedir a opinião de vocês, se estou fazendo certo ou não. Desde já obrigado!

Ninguém? =/

Up!

Depende de qual era a “lição”.

Pelo que pude analisar, acho que não há nenhum erro sintático, mas a adequação de uma modelagem depende de qual tipo de informação se pretende extrair dela.

Por exemplo, ele não guarda histórico de preço do livro, então, não tem como saber qual a quantia total vendida caso o preço mude. Exemplo:

-Em t1, o preço do livro é R$10 e vende 10 unidades.
-Em t2, o preço do livro cai para R$8 e vende mais 10 unidades.

Quando fizer o select, vai aparecer que foram vendidos 20 livros a R$8. O mesmo problema ocorre com o salário. Mesmo que não faça parte da atividade, acho que vale a pena das uma pensada no assunto.

Outro ponto é que os nomes não estão seguindo um padrão. Porque, por exemplo, na tabela usuário tem um campo chamado “nome_cliente” e na tabela livro apenas “nome”?
Eu usaria apenas “nome”, pois pela modelagem dá para saber que se trata do nome do usuário (ou do livro; que ficaria melhor como “título”). Para mim, só faz sentido o nome do atributo acompanhado do nome da tabela, no caso de chave estrangeira.

Se mesmo assim preferir a outra abordagem, é bom manter o padrão nas outras tabelas.

Outras possibilidades:

-Alguns atributos, como “categoria” podem virar entidade. Nesse caso, os livros teriam apenas cartegorias pré-estabelecidas. Isso evitaria ter categorias que significam a mesma coisa como “ação” e “acao”, por exemplo.
-Autor poderia virar entidade. Caso precisasse desse nível de detalhe, poderia ser interessante que os dados comuns com usuários fossem agrupados em uma tabela “pessoa”, por exemplo. Isso evitaria redundância no caso de um “autor” ser também um “usuário”.

Enfim, há inúmeras outras maneiras de se modelar o mesmo problema. Sem ter um problema pré-estabelecido, fica difícil opinar.