Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal, estou desenvolvendo um sistema onde nele há varias empresas, onde cada empresa gera uma ordem de serviço
Tabelas
empresa
codigo_empresa (PK) | nome_empresa |
os
codigo_os (PK) | codigo_empresa (FK)
O Problema
Como as empresas vão gerando OS's não vou poder usar o codigo_os como referência, somente se houvesse uma empresa usando o sistema, por exemplo:
codigo_os | codigo_empresa
1 | 1
2 | 1
3 | 2
4 | 3
Como não vou poder mostrar esse codigo_os para o usuário gostaria de saber se alguém tem uma solução alternativa
Algumas Soluções
Uma das soluções que pensei era verificar quantas OS's tem com codigo_empresa = 1 e somar +1 no codigo_os_empresa da OS, por exemplo:
codigo_os | codigo_os_empresa | codigo_empresa
1 | 1 | 1
2 | 2 | 1
3 | 1 | 2
4 | 1 | 3
Mas não gostei muito dessa ideia, acho que perderia performance e não estaria 100% seguro caso deletasse uma OS
Outra solução que penso seria criar um banco de dados para cada empresa com a mesma estrutura de tabelas, resolveria o problema, mas penso na manutenção, na hora de alterar uma tabela teria de alterar para todos os bancos
Gostaria de saber a opinião de vocês, se alguém já passou por esse tipo de problema e se vocês tem alguma solução bacana para a situação
Sim o usuário faz o login pelo CNPJ da empresa e o sistema exibe somente os dados daquela empresa, mas todas as empresas estariam usando a mesma tabela de OS, Motta essa é uma boa prática o que você acha?
Estou usando MySQL
Sim, o usuário poderia deletar uma OS
Crie então um tabela com o último número da OS dd cada empresa, controle por transaction , pode ficar um pouco mais lento mas é a melhor prática na minha opinião.
Entendi, é acho que é a melhor solução
Obrigado Motta
O sistema será o mesmo para todas as empresas ?
As OS podem ter "banguelas" (sequencias faltantes) ?
Está discussão uma tabela x n tabelas para sistemas desre tipo é duscussão recorrente aqui, dê uma pesquisada.
http://pt.stackoverflow.com/questions/19328/gerar-ids-sequenciais-sem-perder-a-sequencia/19396?noredirect=1#comment36052_19396
Debate sobre isto (sequencias) no sql server mss serve dm parte para outros bds.