LIMITACOES DO MYSQL
poxa, nunca pensei que veria alguém com uma tabela com quase mil campos, embora nunca duvidasse disso.
A dica do Germano é legal e pode ser ampliada.
A dica do Germano é legal e pode ser ampliada.
Citação::
poxa, nunca pensei que veria alguém com uma tabela com quase mil campos, embora nunca duvidasse disso.
A dica do Germano é legal e pode ser ampliada.
rssrsrs, mas somos assim mesmo...
Citação::
Voce tem que analisar o [Ô]Custo X BenefÃcio[Ô] da mudança, ja usei o esquema que vc esta usando e qualquer alteração era complicada e olha que nem cheguei perto dos 1000 rsrs.
Hoje com um simples insert incluo qtas restrições precisar.
O Ricardo tem razão, eu também uso o mesmo esquema(Mudei recentemente) já prevendo uma complexidade .
Agora o que me ajudou a facilitar a mudança foi as SPs(stored procedure) e quase não mudei nada no código.
A minha lógica permaneceu a mesma.
Ao executar determinada operação(inclusão de cliente por exemplo) eu chamo uma função que busca o usuario, o modulo e o acesso.
Foi preciso mudar apenas na SP.
Eu fazia isso... colocava tudo na mesma linha... e aà vi que isso ia virar um problema no futuro.
Vi que a solução era muito fácil e prático, porém muito inflexÃvel.
AÃ consegui reestruturar tudo, mesmo perdendo noites de sono, e no final valeu a pena.
Vi que a solução era muito fácil e prático, porém muito inflexÃvel.
AÃ consegui reestruturar tudo, mesmo perdendo noites de sono, e no final valeu a pena.
beleza pessoal!
o jeito é remodelar mesmo! mas tenho uma duvida!
vou criar a tabela permissões com aproximadamente 1000 pontos por usuario, tendo 50 usurios terei 50 000 linhas nesta tabela.
e quanto a performance de gravação? na hora que eu ler a treevew para garavar no banco terei 1000 inserts? para alterar 1000 UPdates?
tem como enviar varios insertes e updates em uma unica linha pro banco?
hoje tendo 1000 colunas tenho apenas 1 insert e 1 update.
o jeito é remodelar mesmo! mas tenho uma duvida!
vou criar a tabela permissões com aproximadamente 1000 pontos por usuario, tendo 50 usurios terei 50 000 linhas nesta tabela.
e quanto a performance de gravação? na hora que eu ler a treevew para garavar no banco terei 1000 inserts? para alterar 1000 UPdates?
tem como enviar varios insertes e updates em uma unica linha pro banco?
hoje tendo 1000 colunas tenho apenas 1 insert e 1 update.
Um detalhe: trabalho com permissões por Grupo e não por Usuário que já diminui bem a qtde de registros.
Cada tela geralmente cria 4 registros (Listagem, Consulta completa, Novo, Alterar e Excluir)
Por exemplo:
Se o usuario clica no botao [Ô]Novo[Ô], verifico na tabela de permissoes: id do grupo, nome do formulario (ou relatorio), e o tipo (novo, excluir, etc), desta forma sempre faço a busca de 1 registro somente.
Já testei isso com o banco de dados (mysql) hospedado na internet e o desempenho foi muito bom.
Cada tela geralmente cria 4 registros (Listagem, Consulta completa, Novo, Alterar e Excluir)
Por exemplo:
Se o usuario clica no botao [Ô]Novo[Ô], verifico na tabela de permissoes: id do grupo, nome do formulario (ou relatorio), e o tipo (novo, excluir, etc), desta forma sempre faço a busca de 1 registro somente.
Já testei isso com o banco de dados (mysql) hospedado na internet e o desempenho foi muito bom.
Eu também acho que deveria desvincular o uso do cadastro de usuário
exemplo:
no cadastro de usuário coloque apenas os campos
codigo,usuário,senha,ativo,iddep,depto
crie uma tabela de uso que contenha os campos
codigo_usuario,id_uso, valor
o id_uso, pode ser autonumerico, tipo 1,2,3,4, o que repesentaria uso1, uso2, uso3....
então ficaria algo assim:
codigo_usurio | id_uso | valor
6 1 NULL
6 2 NULL
6 3 3
6 4 2
e assim vai, desta forma vc terá muitos registros sem alterar a quantidade de campos
exemplo:
no cadastro de usuário coloque apenas os campos
codigo,usuário,senha,ativo,iddep,depto
crie uma tabela de uso que contenha os campos
codigo_usuario,id_uso, valor
o id_uso, pode ser autonumerico, tipo 1,2,3,4, o que repesentaria uso1, uso2, uso3....
então ficaria algo assim:
codigo_usurio | id_uso | valor
6 1 NULL
6 2 NULL
6 3 3
6 4 2
e assim vai, desta forma vc terá muitos registros sem alterar a quantidade de campos
Tópico encerrado , respostas não são mais permitidas