Clipper On Line • Ver Tópico - Modelo Banco de Dados
Mudar para estilo Clássico
Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.
Postar uma resposta

Modelo Banco de Dados

28 Dez 2011 12:01

Bom dia à todos,

Estou tentando migrar um banco dbf para Mysql.
O sistema é um controle de estoque.
Estou tendo um pouquinho de dificuldade em escolher como fazer a modelagem.
Tenho uma tabela de estoque, que relacionada à ela tem:
* Produto
Relacionada a tabela de Produto eu tenho:
- Subcategoria
- Categoria (opcional, uma vez que Categoria e Subcategoria estão relacionadas)
- Unidade
- Fabricante.
Como chave primária de Produto, criei uma chave composta de Código+Cor+Tamanho, pois posso ter o mesmo produto(código) com grade(cor e tamanho) diferentes.
1) Problema: Se utilizar um campo auto-incremento como chave primária, ainda posso ter duplicação de produto.
Ex:
chave codigo cor tam
001 s10 2 20
002 s10 2 20
Ou seja, Cadastrei o mesmo produto (duplicidade).
Pendei em usar Unique, mas eu posso ter:
chave codigo cor tam
001 s10 3 20
002 s10 2 20
São produtos diferentes, mas como mesmo código e tamanho.
Então só me restou Chave Primária composta.
2) Meu cliente deseja ter apenas um produto 'S10' que pode ter várias cores e tamanhos. Ex:
codigo cor tam
s10 2 20
2 30
5 20

3) Problema: Como irei fazer o relacionamento entre Estoque e Produto?
Chave estrangeira Composta? Li em alguns fórum que é uma anomalia. Que posso ter muita dificuldade na manutenção...

O que vcs me indicam?

No dbf tenho várias 'tabelas', porém é repetido muita informação.

:)) Ano Novo!

Modelo Banco de Dados

29 Dez 2011 18:54

Amiguinha,

Em se tratando de estoque onde voce manipula itens do tipo produto ou kit voce precisará de mais tabelas relacionadas e mais campos de controle.

Em primeiro lugar voce não deve usar a sua chave primaria para este vinculo. Ela servirá para manter a integridade dos registros de forma que não coincidam.

Voce precisará:

Arquivo estoque:
- 1 campo para armazenar o código de barras. Imprescindivel nos casos de vendas rápida no balcão e seu frente de caixa.
- 1 campo de referencia. Necessário para vinculo interno entre a loja e a produção(corte, acabamento, etc)
- 1 campo para data de producao. Interessante para dosar o tempo de vida do item, numa estação ou coleção.
- 1 campo para data de validade. Interessante para se retirar das prateleiras itens fora de estação ou coleção. Vender inverno no verão, só em queima.
- 1 campo para numero de lote. Necessário para dosar coleções de forma que o mesmo item produzido em épocas diferentes não seja relacionado erroneamente.
- 1 campo para o código da matiz, ou seja, coloração. 01-Amarelo, 02-verde, etc. Na sessão tabelas disponibilizei uma tabela.

Arquivo de grade:
- 1 campo código da grade. Que poderá ser composta de código do produto e codigo da matiz, ex: 125420-004, onde 125420 chave primária e 004 cor-Amarelo.
- 1 campo para salvar somente a chave primária do item do estoque. esta se repetira e portanto poderás filtrar por este campo.
- 1 campo para salvar o código da matiz. Interessante para filtrar todos os itens em uma cor.

Como voce irá controlar também o tamanho sugiro acrescentar ao código da grade um numero para este controle, ou seja, dois digito ta de bom tamanho, pois o padrão de medidas mudou e não teremos mais a figura de P,M,G,ExtraGrande,HiperSuperMegaUltralálálá e sim um controle diferenciado.

O exemplo ficaria, 125420-004-12. Desta forma voce poderia gerar os disparos de manutenção das quantidades para cada trecho do código.

Lembrando, chave-primária será o controle do registro e a chave da grade a chave de controle que voce quer manipular.

Com a chave primária, ex: 125420 voce terá apenas um registro no estoque e sua grade poderá ter quantas cores quizer com quantos tamanhos forem possíveis.

Assim como o cadastro de clientes só tem um registro para cada. Cada cliente possui vários registros de pedidos e cada pedidos possui vários registros de itens.

Modelo Banco de Dados

30 Dez 2011 09:02

Bom dia Rochinha,
Muito obrigada pela dica....

Hehe, depois que postei, pensei melhor e vi que estava indo pelo caminho errado.
Sempre penso nos 3N, mas dessa vez parece que esqueci...
Se não me engano na 3 FN, diz que o que se repete = outra tabela.
Pensei em algo parecido com o que você falou...
fiz uma tabela de produto e outra com produto característica, e no estoque
uso a combinação de chave(campo normal) e uso outro para PK, como dito com vc.
Vou modelar e vê se dá certo.

Vlw pelas dicas....
Postar uma resposta