Ajuda com modelagem

13/09/2013

0

Tenho 3 tabelas referentes a produtos, [FERRAMENTAL], [ITENS DE CONSUMO], [EQUIPAMENTOS]. Estão em tabelas separadas pois armazenam dados diferentes (poucos campos são iguais).

Tenho uma terceira tabela [MOVIMENTAÇÃO] que registra a movimentação desses itens. O campo <item> pode se referir a qualquer uma das três tabelas, ou seja, pode ser tanto um FERRAMENTAL, um ITEN DE CONSUMO ou um EQUIPAMENTO.

Como ficaria esse relacionamento?
Matheus Sraiva

Matheus Sraiva

Responder

Posts

13/09/2013

Alan Mario

você citou as tabelas mas eu não entendi o banco como um todo, é de que? venda, cadastro...hospitalar...
Responder

13/09/2013

Matheus Sraiva

nada nesse sentido, na verdade são itens de um almoxarifado.
As tabelas devem ficar separadas nessas categorias, pois a maioria dos campos necessários para cada uma delas são diferentes.
Meu objetivo é criar uma tabela única de movimentação desses materiais, não quero ter que criar uma tabela de movimentação para cada categoria de material. Exemplo

[MOVIMENTAÇÃO DE FERRAMENTAL], [MOVIMENTAÇÃO DE ITENS DE CONSUMO], [MOVIMENTAÇÃO DE EQUIPAMENTOS]

Não quero fazer isso.
Responder

13/09/2013

Alan Mario

tambem acho que vc deveria colocar tudo isso em um tabela, ficaria mais enxuto, coloca só algo relacionado a chave primaria dessa tabela.

[MOVIMENTAÇÃO DE FERRAMENTAL], [MOVIMENTAÇÃO DE ITENS DE CONSUMO], [MOVIMENTAÇÃO DE EQUIPAMENTOS]


Responder

14/09/2013

Matheus Sraiva

De qualquer forma... Tem como fazer esse relacionamento da forma que eu quero ou é impossível?
Responder

14/09/2013

Alan Mario

liste todas as suas tabelas.
Responder

14/09/2013

Matheus Sraiva

[url]http://img571.imageshack.us/img571/3991/eu57.png[/url]

Quero deixar as tabelas separadas como estão, e quero uma tabela única para movimentação das três. Não quero juntar.
Isso é praxe, se juntar tudo numa só o resto seria tranquilo e eu nem estaria aqui.

O desafio é fazer uma relacionamento dessa forma que eu estou propondo, se é que tem como relacionar.
Responder

14/09/2013

Marcos Saffran

Boa noite Matheus,

crie, na tabela de movimentação um campo para diferenciar de qual tabela pertence o produto.

tbMovimentacao
id_tbMovimentacao
id_Produto
tbOrigem (aqui você informa de qual tabela o produto pertence - pode ser o nome da tabela, ou mesmo um número que a identifique)
etc.
Responder

14/09/2013

Marcos Saffran

Boa noite Matheus,

crie, na tabela de movimentação um campo para diferenciar de qual tabela pertence o produto.

tbMovimentacao
id_tbMovimentacao
id_Produto
tbOrigem (aqui você informa de qual tabela o produto pertence - pode ser o nome da tabela, ou mesmo um número que a identifique)
etc.
Responder

15/09/2013

Matheus Sraiva

Nesse caso então a tabela de movimentação não terá um relacionamento direto com as outras tabelas? Ou seja, não haverá chave estrangeira?

Boa noite Matheus,

crie, na tabela de movimentação um campo para diferenciar de qual tabela pertence o produto.

tbMovimentacao
id_tbMovimentacao
id_Produto
tbOrigem (aqui você informa de qual tabela o produto pertence - pode ser o nome da tabela, ou mesmo um número que a identifique)
etc.
Responder

15/09/2013

Marcos Saffran

Bom dia Matheus,

nesse caso não haverá chave estrangeira, apenas os campos referenciando a tabela e o código, imaginei que o gerenciamento dessas referências seja feito por um programa.

Outra ideia que tive é criar um produto em cada tabela com um código específico, por exemplo 1, então, na tabela de movimentação cria-se três chaves estrangeiras, cada uma ligando a uma tabela diferente, então ao criar a movimentação, o código do produto irá para a chave estrangeira correspondente e as outras duas recebem o código específico, 1.

Não sei se estou conseguindo ser claro, mas se tiver alguma dúvida me avise.
Responder

15/09/2013

Marcos Saffran

Bom dia Matheus,

nesse caso não haverá chave estrangeira, apenas os campos referenciando a tabela e o código, imaginei que o gerenciamento dessas referências seja feito por um programa.

Outra ideia que tive é criar um produto em cada tabela com um código específico, por exemplo 1, então, na tabela de movimentação cria-se três chaves estrangeiras, cada uma ligando a uma tabela diferente, então ao criar a movimentação, o código do produto irá para a chave estrangeira correspondente e as outras duas recebem o código específico, 1.

Não sei se estou conseguindo ser claro, mas se tiver alguma dúvida me avise.
Responder

15/09/2013

Matheus Sraiva

um campo na tabela de movimentação que vai apontar com chave estrangeira para tabelas diferentes? várias chaves estrangeira em um mesmo campo?
Responder

15/09/2013

Marcos Saffran

Na tabela movimentação seriam 3 chaves estrangeiras, uma para equipamento, uma para itensconsumo e outra para ferramental.

Assim, se o código específico criado nas três tabelas seja o 1 e você movimente o produto de código 123 da tabela ferramental teremos:
fk_equipamento = 1
fk_itensconsumo = 1
fk_ferramental = 123,

se o produto movimentado for de código 123 da tabela equipamento, teremos:

fk_equipamento = 123
fk_itensconsumo = 1
fk_ferramental = 1
Responder

15/09/2013

Matheus Sraiva

Ummm, então teria-se que acrescentar mais esses três campos na tabela de movimentação? Um campo que irá apontar (FK) para Ferramentas, ou que irá apontar (FK) para Itensdeconsumo e outro que irá apontar (FK) para Equipamentos?
Se assim for acho que é mais enxuto deixar o relacionamento a cargo da aplicação mesmo.
Responder

15/09/2013

Marcos Saffran

É isso mesmo, também acho melhor deixar a cargo da aplicação.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar