Multi-Empresa, Como ?

19/08/2008

3

Caros colegas,

Não desenvolvi ainda nenhuma aplicação multi-empresa, agora surgiu a necessidade, se alguém puder me ajudar ficaria agradecido...

Que mudança deve efetuar no sistema para que ele seja multi-empresa?


Delphi 7, Sql Server 2005...

Agradecido


Responder

Posts

19/08/2008

Craudio

Adicione mais uma chave nas tabelas do banco de dados.
por exemplo
hipotéticamente vc tem uma tabela chamada

tbVenda

cdCliente primary key,
nmCliente

Com o sistema multi-empresa vc adiciona mais o campo ´cdempresa´ nas suas tabelas

Então a tabela ´tbVenda´ passa a ser ...

tbVenda
CDEMPRESA integer primary key,
cdCliente primary key,
nmCliente

espero que ajude..


Responder

19/08/2008

Irenildo

No caso,

Eu teria que ter + uma chave em todas as tabelas, a qual indicaria em qual empresa estaria trabalhando, certo?

De que forma eu faria essa indicação?

Agradecido


Responder

19/08/2008

Diegotiemann

Isso não é uma questão simples. Existem muitas coisas que deve ser consideradas para se adotar um métodologia de traabalho multi-empresa.
EX:
Um usuário pode estar ligado a mais de uma empresa?
Você vai armazendar os dados em uma única empresa?
O sistema vai rodar em rede?


Responder

19/08/2008

Irenildo

Veja,


Um usuário pode estar ligado a mais de uma empresa? Não seria necessário

Você vai armazendar os dados em uma única empresa? Os dados serão armazenados em um único servidor, porém dividido em Matriz e filiais...

O sistema vai rodar em rede? O sistema vai rodar em rede sim...

Se possível, me ajudem a entender melhor como seria esse processo.

Agradecido


Responder

20/08/2008

Diegotiemann

Então as multi empresas seriam a matriz e as filiais? Certo?
Você vai conectar todas as filiais no servidor ou isso você ainda não sabe como fazer?


Responder

20/08/2008

Paulo

Aqui na minha empresa temos 35 filiais e uma Matriz. O que o craudio te falou, é um começo. Quanto a ter uma chave com cdempresa em todas as tabelas não, mas somente naquelas onde se faz necessário identificar a empresa. Crie um Servidor de Aplicação e os demais clientes. Cada cliente conectado a esse SA. Cada log identificado pelo cdempresa. Assim você poderá trabalhar com várias filiais(multi empresa) conectado a uma Matriz(é assim que nós aqui na minha empresa trabalhamos). Desta forma aqui, a coisa vai bem. Temos lojas em: SP,GO,DF,MG e PE. Todas conectadas com a Matriz em SP. Agora é um projeto complexo sim, é necessário um bom planejamento, para planejar o fluxo das informaçoes(DFD), o banco deve estar bem projetado, bem consistido e íntegro. Após tudo isso, é que se pensa qual banco usar e qual linguagem, mas antes deve estar tudo no papel ou na tela. Projete o seu sistema primeiro.


Responder

20/08/2008

Irenildo

Paulo,

Eu trabalho com Delphi 7 e Sql Server 2005, ja tenho uma certa esperiência em desenvolvimento, porém nada multi-empresa, se não fosse esse detalhe, teria tudo planejado... Porém existe pequeno grande detalhe, eu não entendi bem o que vc me sugeriu, vc poderia se possível detalhar um pouco mais?

Agradecido


Responder

20/08/2008

Paulo

Eu sugeri vc usar Multi Camadas, pois fica melhor distribuída a sua aplicação, evitando assim, problemas com consumo de banda de rede e etc... Voce define seu RDM principal - Multipla Instancioa(RDM-Remote Data Module) e os demais RDM - Internal. Nesses últimos, é onde você distribui seu projeto(tipo, RDM-Cadastros, RDM-Relatórios, RDM-Financeiro e etc...). Quanto ao banco, é aquilo que o craudio te falou e que você já sabe, ou seja, as tabelas que precisam ser identificadas por empresa, coloque um codigo que identifique a empresa e/ou filial.


Responder

21/08/2008

Irenildo

Paulo,

andei lendo sobre multicamadas, achei bastante enteressante, vc não teria modelos de RDM-Cadastros, RDM-Relatórios, RDM-Financeiro e etc... Se tiver e se for o caso oderiamos negociar os mesmo, certo?

Outra coisa, como trabalho com Bd Sql Server e Ado, não teria problema em utilizar esse tipo de componentes de acesso a dados, certo?

E quanto as triggers e procedures se quiser utilizar no banco também não teria problemas?


Agradecido


Responder

22/08/2008

Godzilla_xf

Paulo, andei lendo sobre multicamadas, achei bastante enteressante, vc não teria modelos de RDM-Cadastros, RDM-Relatórios, RDM-Financeiro e etc... Se tiver e se for o caso oderiamos negociar os mesmo, certo? Outra coisa, como trabalho com Bd Sql Server e Ado, não teria problema em utilizar esse tipo de componentes de acesso a dados, certo? E quanto as triggers e procedures se quiser utilizar no banco também não teria problemas? Agradecido


Olá, bem eu uso assim como foi citado acima, com uma chave primaria a mais em cada tabela, quando o usuario loga no sistema ele escolhe uma empresa, ai fica a cargo das sql fazer as chamadas de acordo com o codigo da empresa selecionada. ex:

select
  ,id_cliente
  ,id_empresa
  ,nome
  ,fone
  ,etc...
from
  MyTabe
where
  (id_cliente = :id_cliente) and (id_empresa = :id_empresa) // aqui seria a empresa selecionada pelo usuario.


quanto a multicamadas e o banco sql pelo que eu sei nao tem problema nenhum usa-lo, outra coisa, sobre usar trigers no banco acaba que contraria um pouco a questao do multicamadas onde todo o serviço e feito pelo servidor de aplicaçoes. mas posso estar errado a esta respectiva informaçao.


Responder