Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • VIR - wiki VIR - wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • VIR - Visual Interactive Reading
  • VIR - wikiVIR - wiki
  • Wiki
  • banco_dados

banco_dados · Changes

Page history
Update banco_dados authored Nov 28, 2024 by Arthur Zanella Lovato's avatar Arthur Zanella Lovato
Hide whitespace changes
Inline Side-by-side
banco_dados.md
View page @ 9476fd7f
......@@ -10,3 +10,105 @@ Espaço destinado ao compartilhamento de informações sobre o Banco de Dados do
## Modelagem
![eddiagr](uploads/4f93e0698ca0d8a7b5060bf461d8a148/eddiagr.png)
<br>
# Banco de Dados
O banco foi desenvolvido utilizando Flask como framework e SQLAlchemy como ORM, a escolha destas tecnologias ocorreu para facilitar a interação com o banco de dados de forma mais intuitiva e estruturada.
## Tabelas
1 - User
Armazena informações sobre os usuários do sistema, como os administradores do sistema ou o pessoal responsável pelas escolas.
```
• id: Identificador único do usuário (chave primária).
• name: Nome do usuário.
• email: E-mail único para cada usuário.
• password: Senha criptografada do usuário.
• role: Privilégio administrativo do usuário.
```
2 - School
Representa as escolas que utilizam o sistema. Cada escola pode ter várias turmas associadas.
```
• id: Identificador único da escola (chave primária).
• user_id: Relaciona o leitor ao seu usuário específico (chave estrangeira).
• name: Nome da escola.
• address: Endereço da escola.
• CNPJ: CNPJ da escola.
```
3 - Class
Representa as turmas dentro de uma escola. Cada turma pode ter vários leitores, ou alunos, associados e pode ter um ou mais livros sendo lidos.
```
• id: Identificador único da turma (chave primária).
• school_id: Relaciona a turma a uma escola específica (chave estrangeira).
• name: Nome da turma.
```
4 - Reader
Armazena informações sobre os alunos, ou leitores, que estão utilizando o sistema para acompanhar seu progresso na leitura de livros.
```
• id: Identificador único do leitor (chave primária).
• user_id: Relaciona o leitor ao seu usuário específico (chave estrangeira).
• school_id: Relaciona o leitor a uma escola específica (chave estrangeira).
• class_id: Relaciona o leitor a uma turma específica (chave estrangeira).
• name: Nome do leitor.
```
5 - Category
Representa as categorias dos livros disponíveis no sistema. Os livros foram classificados de maneira pré-definida, como "Ficção", "Aventura", "Educação", etc.
```
• id: Identificador único da categoria (chave primária).
• name: Nome da categoria.
```
6 - Book
Armazena informações sobre os livros disponíveis no sistema, incluindo os dados do livro e a associação com categorias.
```
• id: Identificador único do livro (chave primária).
• title: Título do livro.
• cover: Caminho para a imagem de capa do livro.
• total_page: Número total de páginas do livro.
• category_id: Relaciona o livro a uma categoria (chave estrangeira).
• file_id: Relaciona o livro a um arquivo PDF (chave estrangeira).
```
7 - Chapter
Armazena os capítulos de cada livro. Cada capítulo pode conter uma descrição e um GIF para ilustrar o que aconteceu no capítulo.
```
• id: Identificador único do capítulo (chave primária).
• book_id: Relaciona o capítulo ao livro (chave estrangeira).
• title: Título do capítulo.
• start_page: Página inicial do capítulo.
• end_page: Página final do capítulo.
```
8 - ReaderProgress
Monitora o progresso de leitura de cada aluno para cada livro. Armazena em que capítulo o aluno está e o percentual de progresso.
```
• id: Identificador único do progresso (chave primária).
• reader_id: Relaciona o progresso a um aluno (chave estrangeira).
• book_id: Relaciona o progresso ao livro (chave estrangeira).
• chapter_number: O último capítulo que o leitor parou.
• page_numer: A última página que o leitor parou.
```
9 - File
Armazena os arquivos PDF dos livros, que são os documentos de leitura.
```
• id: Identificador único do arquivo (chave primária).
• book_id: Relaciona o arquivo ao livro (chave estrangeira).
• name: Nome do arquivo.
• file_url: Caminho para o arquivo PDF do livro.
```
_________________________________________________________________________________________________________
## Relações Entre as Tabelas
• <b>User ↔ School:</b> Um usuário com o privilégio de escola pode ter acesso a uma escolas, assim como cada escola tem um único usuário com privilégio de escola.
• <b>School ↔ Class:</b> Uma escola pode ter várias turmas, mas cada turma pertence a uma única escola.
• <b>Class ↔ Reader:</b> Uma turma pode ter vários leitores (alunos), mas cada aluno pertence a uma única turma.
• <b>Category ↔ Book:</b> Cada livro pertence a uma categoria, mas uma categoria pode ter vários livros associados.
• <b>Book ↔ Chapter:</b> Cada livro pode ter vários capítulos, mas um capítulo pertence a um único livro.
• <b>Reader ↔ ReaderProgress ↔ Book ↔ Chapter:</b> Cada leitor pode ter um ou mais registros de progresso, cada um associando o progresso do leitor a um livro e um capítulo específicos. Isso permite monitorar em que ponto o aluno está em cada livro e capítulo.
• <b>Book ↔ File:</b> Cada livro tem um arquivo PDF associado, armazenado na tabela File.
Clone repository
  • arquitetura
  • banco_dados
  • codigo
  • configuracao
  • configurações
  • design_mockups
  • escopo
  • gerencia
  • Home
  • processo
  • qualidade
  • utilizacao