Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal:
Sou novo por aqui para postagens, mas costumo ler muitos posts do imasters.
Em meus estudos em modelagem de tabelas, aprendi que o certo seria da forma abaixo:
1. fornec
a. codigo_fornec
b. nome_fornec
2. produto
a. codigo_produto
b. nome_produto
3. fornecedores_produto
a. codigo_produto
b. codigo_fornec
Onde as 3 tabelas acima seriam:
1. tabela de fornecedores.
2. tabela de produtos.
3. tabela de fornecedores para cada produto.
Sempre criei tabelas desta forma devido a opiniões de colegas de trabalho, as bibliografias que li e recentemente fiz um curso básico de banco de dados.
Consequentemente, nunca me gerou nenhum tipo de problema, tanto para gravar quanto para ler.
Entretanto, as vezes penso que é abstrair muito para obter pouca informação.
Por exemplo, no exemplo acima não terá mais do que 4 fornecedores, sendo que tenho certeza absoluta uma vez que o cliente para o qual estou fazendo o cadastro não comprar o produto de mais do que 4 fornecedores, nas regras de negócio dele não teria nem lógica até.
Por este motivo, as vezes penso em modelar a tabela de produtos da forma abaixo:
2. produto
a. codigo_produto
b. nome_produto
c. codigo_fornec01
d. codigo_fornec02
e. codigo_fornec03
f. codigo_fornec04
Se eu criasse a tabela de produtos da forma acima, ela estaria errada?
Para gravar seria simples, pois em um único insert eu iria gravar os fornecedores, sendo que para manter a integridade eu poderia mover um 0 para os fornecedores que não foram cadastrados.
Para ler os dados eu teria que criar um select e "apelidar" a tabela de fornecedores 4 vezes caso eu queira trazer os 4 fornecedores.
A modelagem desta tabela no enterprise architect 4.1 não fica tão "bonita" quanto o exemplo anterior, pois há 4 associações do fornecedor ao produto.
Fiz algumas vezes este tipo de modelagem e para as pessoas que eu mostrei elas faziam uma "careta" na hora. ^_^
Eu ficaria muito agradecido se vocês pudessem me informar se este tipo de modelagem está errada e me explicarem a melhor forma de modelar uma tabela deste tipo.
Se vocês puderem me indicar uma documentação para modelar tabelas neste tipo de situação, eu ficaria muito agradecido, pois procurei na internet e não achei nenhuma oficial, só em listas de discussão.
Muito obrigado!
Hudson
Carregando comentários...