Multi Empresa

Modelagem

18/03/2009

Caros, gostaria da opnião dos amigos principalmente dos que já sofreram com está duvida. Estou querendo desenvolver um sistema de contabilidade multi empresa, mais me surgiu a duvida na hora da modelagem e criação do banco. Se crio as tabelas com o id_empresa, onde por exemplo a tabela plano de contas iria conter os registros do plano de contas de todas as empresas, ou se criou varias tabelas plano de contas para cada empresa que crio no sistema, não sei tecnicamente o que seria o melhor para um aplicativo com está caracteristica, principalmente na questão desempenho, desde já agradeço a opnião dos amigos.

Sem mais para o momento


Blue Timber

Blue Timber

Curtidas 0

Respostas

Eleuterio Gonzalez

Eleuterio Gonzalez

18/03/2009

Se não consegue separar por BD separe por tabelas.
GOSTEI 0
Edinei Colli

Edinei Colli

18/03/2009

Creio que utilizar o campo id_empresa seja uma boa opção.

Não crie uma tabela para cada empresa pois isso irá dificultar futuras atualizações nos metadados, pois você poderá ter clientes utilizando seu sistema com 1 tabela e outro com n.

Se manter os dados em uma tabela com o campo id_empresa ao atualizar os metadados para 1 empresa ficará atualizado para todas e você terá o mesmo número de tabelas em todos os seus clientes independente do número de empresas.

Espero ter ajudado.
GOSTEI 0
Djean Figueira

Djean Figueira

18/03/2009

Obrigado a todos!
GOSTEI 0
Wilson Junior

Wilson Junior

18/03/2009

Sugiro colocar o ID_Empresa e ao logar no sistema perguntar qual a empresa que gostaria de se logar, assim poderia ser mostrado somente os dados da empresa na qual se logou.

Espero ter colaborado.
GOSTEI 0
Eduardo Apolo

Eduardo Apolo

18/03/2009

ID_Empresa é uma boa. Porém, precisa se preocupar com LOCKS. Considere que várias empresas podem realizar vários updates ao mesmo tempo.

Talvez para tabelas maiores seja melhor quebrar em várias tabelas.
GOSTEI 0
Carlos Mazzi

Carlos Mazzi

18/03/2009

Concordo com a ideia do Paulista.. acho q assim vai normal... Abracos++
GOSTEI 0
Wilson Junior

Wilson Junior

18/03/2009

Caro Apolo,

Trabalhei com base de dados gigantes e com várias empresas, e lhe garanto que a performance fica boa, basta você ter um índice pelo campo da empresa nas suas tabelas, caso não tiver um índice (ID_Empresa junto na Chave primária ou criar um INDEX) a performance cai e muito.

Espero ter colaborado.
GOSTEI 0
Jener Martins

Jener Martins

18/03/2009

  Penso que o melhor seja separar as tabelas e se possível separar as bases (Qdo for SQL-Server, Oracle, etc...).
O uso do campo ID certamente é mais prático. No entanto em pouco tempo você terá uma base "obesa" e por mais que digam o contrário, vejo que este é um risco desnecessário.
Já tive experiência em ambas situações, e sem sobra de dúvidas sempre opto por separar os dados. Seja por meio de tabelas ou bases distintas.
GOSTEI 0
Flavio França

Flavio França

18/03/2009

Acho que cada situação tem uma solução distinta, exemplo pegemos alguns órgãos de controle profissional, cito conselho de medicina, contabilidade, advogados, etc., creio que pra esses órgãos não caberia a junção em uma só tabela, mas no seu caso cabe ver se existirá milhares de registros, caso tenha separe, caso contrário não separe, pois pra manutenção do banco é preferível uma só tabela, depedendo do sgbd leva-se muito tempo para tornar uma base obesa, creio que não podemos generalizar, estudo calmente o seu caso!
GOSTEI 0
POSTAR