Modelagem de um Banco de Dados para Cadastro de Usuários
- #MySQL
- #Modelagem de Negócios
Fala Devs! Tudo bem com vocês? Espero que sim!
Neste artigo vou apresentar um pequeno projeto de banco de dados para facilitar o entendimento de quem está começando. Para quem possui dúvidas sobre a modelagem de banco de dados relacional, seus atributos e tipos de dados. Além disso, os códigos XML do projeto estão disponíveis no Github.
Requisitos básicos
Para este pequeno projeto foi definido duas entidades e seus respectivos atributos:
Entidade Usuário: nome, sobrenome, foto, cpf, rg, gênero, whatsapp, link, login, senha, nível, cadastro, situação.
Entidade Endereço: tipo, cep, rua, número, bairro, complemento, cidade, uf, situação.
Modelagem: Banco de Dados - Cadastro de Usuários
Na entidade usuário os tipos são: nome (texto), sobrenome(texto), foto(texto), cpf(texto), rg(texto), gênero(texto), whatsapp(texto), link(texto), login(texto), senha(texto), nível(inteiro), cadastro(data e hora), situação(verdadeiro ou falso).
Já na entidade endereço os tipos ficaram assim: tipo(texto), cep(texto), rua(texto), número(texto), bairro(texto), complemento(texto), cidade(texto), uf(texto), situação(verdadeiro ou falso). Além disso, o relacionamento funciona da seguinte forma: um usuário pode ter um ou vários endereços e um endereço pertence a um usuário.
Porém, se duas pessoas que moram no mesmo endereço, estiverem cadastradas no sistema, cada endereço possuirá um id diferente, sendo assim, cada pessoa possuirá seu endereço, não interferindo, caso tenha que fazer alguma alteração no mesmo.
Script SQL do Modelo Físico
CREATE TABLE usuario (
idusuario BIGINT NOT NULL AUTO_INCREMENT,
nome VARCHAR(100) NOT NULL ,
sobrenome VARCHAR(255) NOT NULL ,
foto VARCHAR(255) NULL ,
cpf VARCHAR(11) NULL ,
rg VARCHAR(30) NULL ,
genero VARCHAR(20) NOT NULL ,
whatsapp VARCHAR(14) NULL ,
link VARCHAR(255) NULL ,
login VARCHAR(255) NOT NULL ,
senha VARCHAR(255) NOT NULL ,
nivel INTEGER UNSIGNED NOT NULL ,
cadastro TIMESTAMP NOT NULL ,
situacao BOOL NOT NULL ,
PRIMARY KEY(idusuario));
CREATE TABLE endereco (
idendereco BIGINT NOT NULL AUTO_INCREMENT,
usuario_idusuario BIGINT NOT NULL ,
tipo VARCHAR(10) NULL ,
cep VARCHAR(10) NULL ,
rua VARCHAR(100) NULL ,
numero VARCHAR(50) NULL ,
bairro VARCHAR(100) NULL ,
complemento VARCHAR(255) NULL ,
cidade VARCHAR(50) NULL ,
uf CHAR(2) NULL ,
situacao BOOL NULL ,
PRIMARY KEY(idendereco) ,
INDEX endereco_FKIndex1(usuario_idusuario),
FOREIGN KEY(usuario_idusuario)
REFERENCES usuario(idusuario)
ON DELETE CASCADE
ON UPDATE NO ACTION);
Procedimentos: primeiro, criar o banco de dados; segundo passo, importar o arquivo SQL e clicar em executar.
Banco de Dados Criado no Mysql/MariaDB
Visualização da tabela usuário, utilizando a ferramenta phpmyadmin, com banco de dados MariaDB, disponível nos pacotes xampp, wampp, easyPHP etc.
Em caso de dúvidas ou se você tenha alguma sugestão comenta aqui!
Grande abraço para a comunidade DIO!
Por Dalmo Mendes
E-mail: dalmosilvamendes@gmail.com
GitHub: https://github.com/DalmoMendes
Projeto: https://github.com/DalmoMendes/modelagem-db-cadastro-usuario
Boa Vista-Roraima