Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Martinsrj

ASP + Mysql / Modelagem correta

Recommended Posts

Olá Pessoal, beleza?

 

O único sistema que está quase pronto é o de Portabilidade.

 

Agora, estou fazendo um sistema chamado Projeto Obama, na verdade esse é com urgência, tenho que entrega-lo na segunda-feira.

 

Tenho pensamento de fazer um único banco e criar várias tabelas para os diversos sistemas que serão acessados no meu site ou endereço.

 

Estou brekando na situação de permissionamento, exemplo: O usuário Fulano pode editar, incluir, excluir dados do Sistema Portabilidade e também do Projeto Obama, porem não pode nos sistemas Gerencia de Incidentes, Gestao de Problemas, Gestao de Mudanças apenas pode visualizar os dados.

 

 

 

Sistemas que serão feitos:

 

Portabilidade, Projeto Obama, Gerencia de Inverso, Gestao de Problem, Gestao de Teste

 

Obs.: todos os sistemas está dentro de único site, pois através desse site todos os usuários poderão visualizar os dados dos sistemas

 

Atualmente o meu banco está com as seguintes tabelas:

tab_dadosport  CREATE TABLE `tab_dadosport` (						  
				 `cod_dados` INT(10) NOT NULL AUTO_INCREMENT,		  
				 `status` VARCHAR(100) DEFAULT NULL,				   
				 `id` VARCHAR(10) DEFAULT NULL,						
				 `sistema` VARCHAR(20) DEFAULT NULL,				   
				 `descricao` TEXT,									 
				 `cod_grupo` INT(12) DEFAULT NULL,					 
				 `observacao` TEXT,									
				 `fase` VARCHAR(20) DEFAULT NULL,					  
				 `plano_entrega` TEXT,								 
				 `dt_inc` DATETIME DEFAULT NULL,					   
				 PRIMARY KEY  (`cod_dados`)							
			   ) ENGINE=INNODB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8

tab_grupos  CREATE TABLE `tab_grupos` (		   
			  `cod_grupo` INT(12) NOT NULL,	   
			  `grupo` VARCHAR(50) DEFAULT NULL,   
			  PRIMARY KEY  (`cod_grupo`)		  
			) ENGINE=INNODB DEFAULT CHARSET=utf8

usuarios_autorizados  CREATE TABLE `usuarios_autorizados` (	
						`cod_usr` INT(10) NOT NULL,			
						`login` VARCHAR(30) DEFAULT NULL,	  
						`nome_usr` VARCHAR(100) DEFAULT NULL,  
						`senha` VARCHAR(30) DEFAULT NULL,	  
						`cod_grupo` VARCHAR(12) DEFAULT NULL,  
						PRIMARY KEY  (`cod_usr`)			   
					  ) ENGINE=INNODB DEFAULT CHARSET=utf8

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara antes de tudo veja se é realmente necessário criar um único banco de dados para várias aplicações, se você utilizar todas em conjunto eu até sou a favor, agora utilizar uma aqui e outra ali eu acho furada pois sobrecarregaria a base de dados atoua, antes de tudo você tem que fazer um estudo e ver se os sistema vão se interligar entre si, montando por exemplo em uma única pagina dados do sistema A, B e C juntamente.... caso não trabalhem em forma unificada entre si, não faça isso pois é perca de tempo, sem contar que um erro em uma tabela iria resultar em erros em todos os sistemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um sistema com niveis de acesso, assim naun tem probelmas com permissoes...

é bom ter um banco com várias tabelas , assim concentra tudo em um unico apenas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tb acho uma boa apenas um BD.

Agora, o patrique colocou uma observacao, centralizando em um unico banco o mysql perderia perfomance ou isso nao seria perceptivel.

 

Pessoal, fiz algumas modificacoes no meu banco, lembrando que nos sistemas todos os usuarios poderam visualizar os dados, porem alguns que poderao editar. Atencao: todos usuarios podem visualizar, porem olguns poderam editar. Obs.: Alguns usuarios que poderam editar nao tera niveis, exemplo: um pode incluir, porem apenas o outro pode alterar... etc se um usuario tiver privilegios, o mesmo podera: alterar, incluir, editar e consequetemente visualizar os dados.

 

Modificacoes abaixo:

Tabela: usuarios

CREATE TABLE `usuarios` ( 
`cod_usr` INT(10) NOT NULL, 
`login` VARCHAR(30) DEFAULT NULL, 
`nome_usr` VARCHAR(100) DEFAULT NULL, 
`senha` VARCHAR(30) DEFAULT NULL, 
PRIMARY KEY (`cod_usr`)
PRIMARY KEY (`login`) 
) ENGINE=INNODB DEFAULT CHARSET=utf8
Tabela: autorizacao

CREATE TABLE `autorizacao` ( 
`cod_sistema` INT(10) NOT NULL, 
`login` VARCHAR(30) DEFAULT NULL,
`tipo_autorizacao` varchar(3) default null,
primary key(`cod_sistema`)
foreign key (`login`)
) ENGINE=INNODB DEFAULT CHARSET=utf8
Tabela: tab_sistemas

CREATE TABLE `tab_sistemas` ( 
`cod_sistema` INT(12) NOT NULL, 
`sistema` VARCHAR(50) DEFAULT NULL, 
PRIMARY KEY (`cod_sistema`) 
) ENGINE=INNODB DEFAULT CHARSET=utf8

Desde ja agradeco ajuda e os esclarecimentos dos mais velhos.

 

 

 

 

 

faz um sistema com niveis de acesso, assim naun tem probelmas com permissoes...

é bom ter um banco com várias tabelas , assim concentra tudo em um unico apenas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atencao: todos usuarios podem visualizar, porem olguns poderam editar. Obs.: Alguns usuarios que poderam editar nao tera niveis, exemplo: um pode incluir, porem apenas o outro pode alterar... etc se um usuario tiver privilegios, o mesmo podera: alterar, incluir, editar e consequetemente visualizar os dados.

enatun , você define o acesso e privilégios de cada user no login dele, e você delega o k cada user poderá fazer, por exemplo, um tem direito de incluir, mas nao alterar, outro apenas alterar, por isso o niveis de acesso para eles, fica mais organizado e gerenciável...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não faria isso se não fosse extremamente necessário, estude muito bem antes cara, antes de tudo veja se é realmente necessário, se não for não faça, imagine uma base de 5 sistemas, vamos supor que daqui uns 3 esta base esteja em 600 MB.... ela já vai estar grande.... ela poderia esta em 120 MB cada.

 

Além disso tem o lance da manutenção, imagina se ocorre um erro em alguma tabela... imagina se alguém consiga zoar... ou por algum motivo a base de dados é zoada.... neste caso os 5 sistemas ficariam prejudicados.

 

Pense bem antes, so faça desta maneira se você tiver garantias de que não terá dor de cabeças futuras, é muito fácil pensar no presente, mais neste caso você além de pensar no presente tem que pensar no futuro, para futuramente não ter dor de cabeça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Patrique pelo esclarecimento e que por sinal e muito valido.

 

Abracos.

 

Eu não faria isso se não fosse extremamente necessário, estude muito bem antes cara, antes de tudo veja se é realmente necessário, se não for não faça, imagine uma base de 5 sistemas, vamos supor que daqui uns 3 esta base esteja em 600 MB.... ela já vai estar grande.... ela poderia esta em 120 MB cada.

 

Além disso tem o lance da manutenção, imagina se ocorre um erro em alguma tabela... imagina se alguém consiga zoar... ou por algum motivo a base de dados é zoada.... neste caso os 5 sistemas ficariam prejudicados.

 

Pense bem antes, so faça desta maneira se você tiver garantias de que não terá dor de cabeças futuras, é muito fácil pensar no presente, mais neste caso você além de pensar no presente tem que pensar no futuro, para futuramente não ter dor de cabeça.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.