Fórum Multi-empresa...duvidas #48286
29/11/2004
0
1º - Qual a melhor solucao para sistemas multi-empresas, deixar pronto vários gdb nomeando-os emp_001.gdb..emp_002.gdb e assim por diante?
2º - Deixar um campo por exemplo...(Cod_Emp)...em cada tabela mas usar somente um gdb...assim todas as informacoes de todas as empresas serao gravadas em uma so tabela...mas nao vai ficar muito pesado?...e alem de tudo, os valores correntes dos campos ´codigo´ nao estarao corretos para cada empresa, pois uma tabela Funcionario por exemplo...comeca com um valor corrente do 1, 2, 3...para a empresa 001, e na empresa 002 ja comecara no 4...:/...?
3º - Se eu criar e deixar pronto varios gdb...ou seja...um para cada empresa...como eu faco para pegar informacoes de uma outra empresa quando conectado a um gdb de uma outra empresa, tem algum select no Firebird que une um gdb a outro gdb?
4º - E quando eu quiser copiar os valores de uma tabela e passar para outra...por exemplo: uma tabela do plano de contas da contabilidade, quero usar o mesmo plano para a empresa tal...tem como fazer isso?
Bom, sao basicamente estas as minhas duvidas...se alguem puder me ajudar..ficarei muito agradecido...
Até mais pessoal...valew!!!
Tchelllo
Curtir tópico
+ 0Posts
29/11/2004
Fsflorencio
No caso do Plano de Contas, você não precisaria colocar o código da empresa na chave primária, podendo assim usar os mesmos registros do plano de contas por todas as empresas cadastrando ele uma vez só.
Gostei + 0
29/11/2004
Tchelllo
Gostei + 0
29/11/2004
Fsflorencio
Quando for gerar o próximo código, a empresa deve ser filtrada para não haver dois códigos iguais na mesma empresa.
ex: select max(cod_funcionario) from funcionarios where cod_empresa = 1;
Mesmo usando generators para tal, para cada empresa que vc inserir vc pode criar dinamicamente um generator para ela e excluindo a empresa, exclui o generator. Ex gen_funcionarios1, gen_funcionarios2.
Se for o caso, vc deverá ter uma tabela com o nome das tabelas para que os generators seram criados a partir dela.
Ex.
Empresa1: gen_clientes1, gen_funcionarios1, gen_produtos1;
Empresa2: gen_clientes2, gen_funcionarios2 ...
Gostei + 0
29/11/2004
Tchelllo
Table: Funcionario
Cod_Func int primary key,
Nome varchar(80),
Salario Decimal(10,2),
Cod_Emp int
Digamos que eu tenho 3 funcionarios inseridos nela:
01, Joao, 1000.00, 01
02, Carlos, 500.00,01
03, Manoel, 800.00, 01
repare que estes estao inseridos na empresa 01. Bom, agora o usuario quer inserir mais funcionarios na empresa 02
04, Juca, 250.00,02
05, Kiko, 10.00,02
...
O cliente quer que o campo Cod_Func comece no codigo 01 para cada empresa que ele registre, mas, se eu manter os registros em apenas uma tabela isso nao da pois a primary key nao deixa, a nao ser que eu crie uma outra table Funcionario, mas dai o gdb ira ficar com muitas tabelas.
Deste jeito nao me resta outra alternativa nao é?
Gostei + 0
30/11/2004
Martins
Vc poderia escrever uma rotina para pegar o último registro da empresa q vc ativar para trabalhar e jogar em uma variavel (inteira), sendo assim, vc poderá alterar o generator para o próximo código... mantendo a ordem...
um exemplo....
[b:4eea15f10c]set generator ´nome_do_generator´ to 10;[/b:4eea15f10c]
O Genarator assume o valor 10...
Apenas uma sugestão....
Gostei + 0
20/12/2004
Ant.carlos/sp
Cod_Func int ,
Nome varchar(80),
Salario Decimal(10,2),
Cod_Emp int
GERE A PK dessa forma: (CODEMP,CODFUNC)
Digamos que eu tenho 3 funcionarios inseridos nela:
|CODEMP|CODFUNC|NOME|SALARIO|
01,01, Joao, 1000.00
01,02, Carlos, 500.00
01,03, Manoel, 800.00
repare que estes estao inseridos na empresa 01. Bom, agora o usuario quer inserir mais funcionarios na empresa 02
02,02,zzzzz,200.00
02,03,xxxx,300.00
02,04, Juca, 250.00
02,05, Kiko, 100.00
Ao incluir faça o Filtro p/ empresa é pege o ultimo no +1
Isto funiona, mas se vc usar em rede...
T+
ANT.CARLOS/SP
Gostei + 0
22/12/2004
Fsflorencio
Ex 1:
Inserí uma empresa e seu código é ´1´.
As tabelas são as seguintes CLIENTES, FUNCIONARIOS
CREATE GENERATOR GEN_CLIENTES1;
CREATE GENERATOR GEN_FUNCIONARIOS1;
Automaticamente serão criados generators. GEN_CLIENTES1, GEN_FUNCIONARIOS1.
Ex 2: Inserí outra empresa e o código é ´2´
Crie os generators GEN_CLIENTES2, GEN_FUNCIONARIOS2.
CREATE GENERATOR GEN_CLIENTES2;
CREATE GENERATOR GEN_FUNCIONARIOS2;
Ex3: Excluí a empresa 1.
Drop generator GEN_CLIENTES1;
Drop generator GEN_FUNCIONARIOS1;
É tudo feito de forma dinâmica.
Inclusive vc deve rever como está fazendo pra pegar o próximo código, pois desta forma o generator a ser utilizado deve ser o generator com o código da empresa em uso.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)