Repositório dedicado ao projeto TechChallenge da FIAP - Turma 4SOAT
Nesse tópico falaremos sobre as motivações para a escolha da stack do banco de dados.
Optamos pelo SQL Server por conta da familiaridade do time com a tecnologia e também pelas características abaixo
- Desempenho e Escalabilidade: O SQL Server é conhecido por seu alto desempenho e capacidade de escalar vertical e horizontalmente. Isso permite que as empresas cresçam suas bases de dados de acordo com a necessidade, mantendo a eficiência.
- Segurança: Oferece recursos robustos de segurança, incluindo criptografia de dados, autenticação integrada e gerenciamento de permissões, garantindo a proteção dos dados sensíveis.
- Compatibilidade com Aplicações: Tem ampla aceitação e integração com várias aplicações e ferramentas de desenvolvimento, facilitando a implementação em ambientes corporativos.
Optamos pelo Amazon RDS por conta do custo benefício e também pelas características abaixo
- Gerenciamento Simplificado: O Amazon RDS simplifica tarefas de administração de banco de dados, como provisionamento de hardware, configuração de banco de dados, patching de software, e backups, permitindo que os desenvolvedores se concentrem no desenvolvimento de aplicações.
- Alta Disponibilidade e Durabilidade: Oferece configurações de replicação fáceis de configurar, backups automatizados, garantindo a disponibilidade e a durabilidade dos dados.
- Escalabilidade: Permite ajustar facilmente os recursos computacionais ou a capacidade de armazenamento com apenas alguns cliques ou de forma automática, proporcionando flexibilidade conforme a demanda varia.
- Compatibilidade: Suporta vários motores de banco de dados, incluindo MySQL, PostgreSQL, Oracle, SQL Server, e MariaDB, oferecendo flexibilidade para trabalhar com a tecnologia preferida ou exigida pelo projeto.
Clientes
Campo | Descrição | Tipo de dado | Nulo? | Índice? | Único |
---|---|---|---|---|---|
Id | Identificador único para o cliente. Chave primária da tabela | int | Não | Sim | Sim |
Cpf | CPF do cliente. Deve ser único | (nvarchar(11) | Não | Sim | Sim |
Nome | Nome do cliente. | nvarchar(50) | Não | Não | Não |
E-mail do cliente. Deve ser único | nvarchar(100) | Não | Sim | Não |
Produtos
Campo | Descrição | Tipo de dado | Nulo? | Índice? | Único |
---|---|---|---|---|---|
Id | Identificador único para o produto. Chave primária da tabela | int | Não | Sim | Sim |
Nome | Nome do produto. | nvarchar(100) | Não | Sim | Não |
Descricao | Descrição do produto. | (nvarchar(300) | Não | Não | Não |
Preco | Preço do produto. | decimal(18,2) | Não | Não | Não |
CategoriaId | Categoria do produto. | int | Não | Sim | Não |
Deletado | Booleano se o produto está deletado | bit | Não | Não | Não |
Item Pedido
Campo | Descrição | Tipo de dado | Nulo? | Índice? | Único |
---|---|---|---|---|---|
PedidoId | Chave primária da tabela e chave estrangeira da tabela pedidos | int | Não | Sim | Não |
ProdutoId | Chave primária da tabela e chave estrangeira da tabela produtos | int | Não | Sim | Não |
Quantidade | Quantidade do produto selecionado | int | Não | Não | Não |
PrecoProduto | Preço do produto. | decimal(18,2) | Não | Não | Não |
Valor | Valor total do item do pedido | decimal(18,2) | Não | Não | Não |
Pagamentos
Campo | Descrição | Tipo de dado | Nulo? | Índice? | Único |
---|---|---|---|---|---|
Id | Identificador único para o pagamento. Chave primária da tabela | int | Não | Sim | Sim |
PedidoId | Chave estrangeira da tabela pedidos | int | Não | Sim | Não |
Valor | Valor total do pedido | decimal(18,2) | Não | Não | Não |
StatusPagamento | Status do pagamento | nvarchar(max) | Não | Não | Não |
FormaPagamento | Forma de pagamento | nvarchar(max) | Não | Não | Não |
Pedidos
Campo | Descrição | Tipo de dado | Nulo? | Índice? | Único |
---|---|---|---|---|---|
Id | Identificador único para o pedido. Chave primária da tabela | int | Não | Sim | Sim |
ClienteId | Chave estrangeira da tabela clientes | int? | Sim | Sim | Não |
Valor | Valor total do pedido | decimal(18,2) | Não | Não | Não |
StatusPedido | Status do pedido | nvarchar(max) | Não | Não | Não |
Diagrama de dados criado com DrawSQL
Pipeline | Status |
---|---|
DB Infrastructure |