PI S5 DSW II DouglasARS: mudanças entre as edições
imported>Douglas |
imported>Douglas |
||
| Linha 98: | Linha 98: | ||
<pre> | <pre> | ||
CREATE TABLE IF NOT EXISTS `mydb`.`Cliente` ( | CREATE TABLE IF NOT EXISTS `mydb`.`Cliente` ( | ||
` | `id_cliente` INT NOT NULL, | ||
`nome_cliente` VARCHAR(100) NOT NULL, | `nome_cliente` VARCHAR(100) NOT NULL, | ||
`obs_cliente` VARCHAR(100) NULL, | `obs_cliente` VARCHAR(100) NULL, | ||
| Linha 108: | Linha 108: | ||
`uf` VARCHAR(2) NULL, | `uf` VARCHAR(2) NULL, | ||
`pais` VARCHAR(50) NULL, | `pais` VARCHAR(50) NULL, | ||
PRIMARY KEY (` | PRIMARY KEY (`id_cliente`)) | ||
</pre> | </pre> | ||
Edição das 11h29min de 8 de março de 2016
Apresentação
Olá Estudante,
Nessa quinta semana vamos levantar alguns questionamentos relatados a partir da correção da AO1. Vamos apresentar novas formas de desenvolvimento. Precisamos preparar o banco de dados para começarmos a desenvolver as telas e fazer o acesso ao banco de dados. Assistam as vídeo aulas e repitam os desenvolvimento já utilizando o sistema que vocês escolheram...
Bons estudos!
Prof. Douglas A.
Objetivo
- Apresentar as considerações sobre a modelagem do banco de dados.
- Mostrar detalhes da programação de formulários quanto a consulta de dados.
Vídeo aulas
Segurança
Qualquer sistema requer o mínimo de segurança. Outras unidades curriculares vão abordar mais particularmente a questão de segurança. Nas semanas anteriores foram apresentados vídeos mostrando como fazer telas de login e senha de usuário, para acessar o sistema. Ficaram algumas dúvidas e com a ajuda do nosso colega Kleber (Joinville) podemos ter uma ideia um pouco mais avançada para o tema e, ao mesmo tempo, resolvemos alguns problemas de acesso, acrescentamos um pouco mais de segurança ao nosso sistema. Abaixo ele explica o que fazer:
por KLEBER PEREIRA DE ALMEIDA - Sunday, 6 de March de 2016, 21:25
Caso alguém esteja enfrentando problemas em realizar o login utilizando os scripts disponibilizados pelo professor (login.php, seguranca.php e valida.php), vão as dicas... No arquivo "seguranca.php" altere os dados do servidor, usuário, senha e banco de acordo com seu projeto, eu alterei meu case sensitive para true (opcional). Verifique se seu projeto já não possui uma tabela "usuarios", provavelmente sim, recomendo alterar o script de seu projeto no Workbench de maneira a tabela "usuarios" ficar igual a do script fornecido pelo professor. Depois basta inserir os dados na tabela, afinal, precisamos de no mínimo um usuário cadastrado para autenticarmos. É preciso também um mínimo de segurança nas informações prestadas pelo usuário, então insira a senha utilizando criptografia/ hash ex.:
INSERT INTO usuarios (nome, usuario, senha)
VALUES ('Kleber Pereira de Almeida', 'kleber', MD5('teste');
Não esqueça que a comparação da senha também deverá ser criptografada, ou seja na linha 9 do arquivo "valida.php" altere para:
$senha = isset($_POST['senha']) ? MD5($_POST['senha']) : '';
Espero ter ajudado, caso alguém tenha encontrado estas pequenas barreiras no caminho.
Obrigado Kleber.
Aluguel de Carros
Uma das tabelas do sistema Aluguel de Carros e a Costumer que traduzindo é Cliente. Abaixo, segue um exemplo de modelagem complicada por vários fatores que relaciono abaixo. Mostro também um exemplo de como poderia ser modelada essa mesma tabela.
CREATE TABLE IF NOT EXISTS `mydb`.`Cliente` ( `idCliente` INT NOT NULL, `Nome do Cliente` VARCHAR(45) NULL, `Descrição do Cliente` VARCHAR(45) NULL, `Sexo` VARCHAR(45) NULL, `endereço de e-mail` VARCHAR(45) NULL, `Número telefone` VARCHAR(45) NULL, `Endereço Residencial` VARCHAR(45) NULL, `Endereço Comercial` VARCHAR(45) NULL, `Endereço Corespondência` VARCHAR(45) NULL, `Cidade` VARCHAR(45) NULL, `Estado` VARCHAR(45) NULL, `País` VARCHAR(45) NULL, PRIMARY KEY (`idCliente`))
Primeira observação:
Nome (espaço) do (espaço) Cliente
Embora o MySQL deixe criar, isto pode causar grandes programas no desenvolvimento e erros de codificação . Sugiro que vocês revejam os modelos no Workbench ou no DBDesigner com os nomes de campos sem espaço, sem cedilha, sem acentos, sem caracteres especiais como $, &, %.
Segunda observação:
Também parece que não houve muita preocupação com os tamanhos dos campos. Está tudo com 45 caracteres. Acontece que na maioria dos casos é suficiente para abrigar um nome de pessoa ou mesmo um endereço, mas sempre deve-se pensar no pior caso, pra não precisa ficar dando manutenção no sistema/banco de dados e alterando o tamanho do campo na respectiva tabela no banco de dados. Outro problema, se as reservas vão ser em hotéis do Brasil, tem que ver se o tamanho de 45 para o estado do cliente não é grande demais. Não que isso vá alterar qualquer coisa no sistema, mas também me parece, que está exagerado. Mas isso vai de cada um desenvolvedor/programador.
Exemplos para o campo "Nome de Cliente":
nome_do_cliente varchar(100) not null, nm_cliente varchar(100) not null, nomeCliente varchar(100) not null, nome varchar(100) not null,
Deve ser not null porque necessariamente um cliente deve ter um nome.
Não é recomendado que se use acentuação. Outros servidores de outros países podem não estar preparados para a codificação com acentuação e outros caracteres especiais, entre outros problemas, então, por exemplo, mostro como poderia ser criada essa mesma tabela Cliente a partir do modelo da tabela Costumer do modelo conceitual (inicial) do sistema Aluguel de Carros:
CREATE TABLE IF NOT EXISTS `mydb`.`Cliente` ( `id_cliente` INT NOT NULL, `nome_cliente` VARCHAR(100) NOT NULL, `obs_cliente` VARCHAR(100) NULL, `sexo` CHAR(1) NULL, `email` VARCHAR(100) NULL, `telefone` VARCHAR(20) NULL, `endereco` VARCHAR(100) NULL, `cidade` VARCHAR(50) NULL, `uf` VARCHAR(2) NULL, `pais` VARCHAR(50) NULL, PRIMARY KEY (`id_cliente`))
Embora o modelo original tenha aberto espaço de 3 linhas para o endereço, trata-se do mesmo endereço. Se fosse endereços diferentes, teria que ter, necessariamente: 3 cidades, 3 estados e até 3 países.
Prof. Douglas A.
Organização da Semana 6
Nesta quinta semana ...
Prof. Douglas A.
Referências
[1]
[2]
| << | <> | >> |
|---|