Banco de dados
Modelagem
A modelagem do banco de dados foi feita pensando em registrar os dados dos usuários logados, uma vez que as informações sobre os trens e estações são obtidas através de APIs da CPTM. Desse modos, foram criadas 5 tabelas que registram os dados do usuário e os serviços utilizados por ele. As tabelas são:
- Usuario: Tabela responsável por registrar os dados dos usuários do sistema. Os dados registrados são: id, nome, email, senha, cpf e endereço.
- EstacaoFavorita: Tabela responsável por registrar as estações favoritas dos usuários. Os dados registrados são: id, id do usuário e id da estação.
- Notificacao: Tabela responsável por registrar as notificações enviadas aos usuários. Os dados registrados são: id, id do usuário, data e hora da notificação e mensagem.
- Emergencia: Tabela responsável por registrar os alertas de emergência enviados pelos usuários. Os dados registrados são: id, id do usuário, id da estação, data e hora do alerta e mensagem.
- Acompanhante: Tabela responsável por registrar os pedidos para acompanhamento dos usuários com necessidades especiais nas estações. Os dados registrados são: id, id do usuário, id da estação, data e hora do pedido e frequência do pedido, caso seja um uso recorrente.
Diagrama
Banco de dados
O banco de dados utilizado é o PostgreSQL, que foi escolhido por sua robustez e confiabilidade. O Prisma foi utilizado como ORM (Object Relational Mapper) para facilitar a integração com o banco de dados, além de fornecer uma API para realizar operações de CRUD de forma simples e intuitiva. O Prisma também possui suporte para migrações, o que permite uma fácil atualização do banco de dados.
Conclusão
A modelagem do banco de dados foi feita de forma a atender as necessidades do sistema, permitindo o registro dos dados dos usuários e dos serviços utilizados por eles. O uso do Prisma como ORM facilita a integração com o banco de dados e permite uma fácil atualização do esquema do banco de dados. A escolha do PostgreSQL como banco de dados garante a robustez e confiabilidade do sistema.