Ir ao conteúdo
  • Cadastre-se

MySQL como Otimizar as tabelas do banco de dados


Posts recomendados

CREATE TABLE Usuarios (
    ID INT PRIMARY KEY,
    Telefone VARCHAR(20),
    Nome VARCHAR(100),
    Saldo DECIMAL(10,2)
);
CREATE TABLE Servicos (
    ID INT PRIMARY KEY,
    NomeDoServico VARCHAR(100),
    Imagem VARCHAR(100),
    Valor DECIMAL(10,2)
);
CREATE TABLE Pagamentos (
    ID INT PRIMARY KEY,
    IDUsuario INT,
    Valor DECIMAL(10,2),
    Status INT,
    FOREIGN KEY (IDUsuario) REFERENCES Usuarios(ID)
);
CREATE TABLE PagamentosServicosUtilizados (
    ID INT PRIMARY KEY,
    IDPagamento INT,
    IDServico INT,
    FOREIGN KEY (IDPagamento) REFERENCES Pagamentos(ID),
    FOREIGN KEY (IDServico) REFERENCES Servicos(ID)
);
CREATE TABLE UsuariosServicosAtivos (
    ID INT PRIMARY KEY,
    IDUsuario INT,
    IDServico INT,
    FOREIGN KEY (IDUsuario) REFERENCES Usuarios(ID),
    FOREIGN KEY (IDServico) REFERENCES Servicos(ID)
);

 

Boa tarde, estou querendo usar um site para serviços pessoais, porém estou com uma certa dificuldade de otimizar bem o banco de dados, portanto gostaria de ajuda :v

 

Preciso gerar automaticamente "faturas" com os serviços ativos para os usuários, quando for no dia de expirar cobrar do saldo, todos os usuários geralmente possuirão mais de 1 serviço ativo, e o valor será partilhado dentro os que estão com serviço ativo...

Gostaria de saber se assim está correto ou precisa ser de outra maneira ou há alguma maneira de otimizar tudo isso

 

Atualmente terá um código no JS rodando tudo, tanto entrega das informações como a manutenção delas (Rodar os INSERT quando for gerar a fatura e os UPDATE)

Desde já agradeço 😄

 

(Obs: Já tinha um banco de dados criado porém estava muito desorganizado pois minha ideia principal era colocar "servicos" "1,2,3,4,5" porém para fazer o split e tudo acho que vai gastar mais recursos que o necessário) 

Método antigo:

 

CREATE TABLE `pagamentos` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `uid` int(11) NOT NULL,
 `valor` double NOT NULL,
 `mes` varchar(30) NOT NULL,
 `vencimento` varchar(30) NOT NULL,
 `services` varchar(30) NOT NULL,
 `status` int(11) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4

CREATE TABLE `services` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` varchar(30) NOT NULL,
 `price` double NOT NULL,
 `quotas` int(11) NOT NULL,
 `image` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4

CREATE TABLE `usuarios` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `name` text NOT NULL,
 `phone` text NOT NULL,
 `services` varchar(30) NOT NULL,
 `cash` double NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!