Ajuda com modelagem
13/09/2013
0
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](https://www.devmedia.com.br/imagens/fotoscolunistas/munra.jpg)
Matheus Sraiva
Posts
13/09/2013
Alan Mario
13/09/2013
Matheus Sraiva
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.
13/09/2013
Alan Mario
14/09/2013
Matheus Sraiva
14/09/2013
Matheus Sraiva
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.
14/09/2013
Marcos Saffran
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.
14/09/2013
Marcos Saffran
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.
15/09/2013
Matheus Sraiva
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.
15/09/2013
Marcos Saffran
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.
15/09/2013
Marcos Saffran
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.
15/09/2013
Matheus Sraiva
15/09/2013
Marcos Saffran
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
15/09/2013
Matheus Sraiva
Se assim for acho que é mais enxuto deixar o relacionamento a cargo da aplicação mesmo.
15/09/2013
Marcos Saffran
Clique aqui para fazer login e interagir na Comunidade :)