-
Notifications
You must be signed in to change notification settings - Fork 1
/
Resilia_banco.sql
113 lines (99 loc) · 3.21 KB
/
Resilia_banco.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
-- Criando a base de dados da nossa empresa
CREATE DATABASE IF NOT EXISTS resilia;
USE resilia;
-- Criando a tabela endereço
CREATE TABLE `endereco` (
`endereco_id` INT PRIMARY KEY AUTO_INCREMENT,
`rua` VARCHAR(80) NOT NULL,
`bairro` VARCHAR(50) NOT NULL,
`cep` INT NOT NULL,
`cidade` VARCHAR(50) NOT NULL,
`complemento` VARCHAR(40),
`uf` VARCHAR(2) NOT NULL,
`pais` VARCHAR(50) NOT NULL
);
-- Criação da tabela dos cursos
CREATE TABLE `curso` (
`curso_id` INT PRIMARY KEY AUTO_INCREMENT,
`nome` VARCHAR(80) NOT NULL,
`duracao` VARCHAR(20) NOT NULL
);
-- Criação da tabela dos módulos de cada curso
CREATE TABLE `modulo` (
`modulo_id` INT PRIMARY KEY AUTO_INCREMENT,
`nome` VARCHAR(80) NOT NULL,
`qtd_aulas` INT NOT NULL
);
-- Tabela para integração dos módulos em seus respectivos cursos
CREATE TABLE `curso_modulo` (
`cursos_id` INT NOT NULL,
`modulos_id` INT NOT NULL,
FOREIGN KEY (`cursos_id`) REFERENCES `curso` (`curso_id`),
FOREIGN KEY (`modulos_id`) REFERENCES `modulo` (`modulo_id`)
);
-- Criação da tabela status
CREATE TABLE `status` (
`status_id` INT PRIMARY KEY AUTO_INCREMENT,
`frequencia` INT NOT NULL,
`nota` FLOAT NOT NULL,
`evasao` ENUM ('ativo', 'inativo') NOT NULL
);
-- Criação da tabela pessoas para o cadastro geral
CREATE TABLE `pessoa` (
`pessoa_id` INT PRIMARY KEY AUTO_INCREMENT,
`nome` VARCHAR(80) NOT NULL,
`email` VARCHAR(50) NOT NULL,
`genero` VARCHAR(30),
`data_nasc` DATE NOT NULL,
`telefone` VARCHAR(11) NOT NULL,
`cpf` VARCHAR(11) NOT NULL,
`endereco_id` INT NOT NULL,
FOREIGN KEY (`endereco_id`) REFERENCES `endereco` (`endereco_id`)
);
-- Criação da tabela dos estudantes
CREATE TABLE `estudante` (
`estudante_id` INT PRIMARY KEY AUTO_INCREMENT,
`senha` VARCHAR(32) NOT NULL,
`pessoas` INT NOT NULL,
FOREIGN KEY (`pessoas`) REFERENCES `pessoa` (`pessoa_id`)
);
-- Criação da tabela dos facilitadores
CREATE TABLE `facilitador` (
`facilitador_id` INT PRIMARY KEY AUTO_INCREMENT,
`senha` VARCHAR(32) NOT NULL,
`frente` ENUM ('hard', 'soft') NOT NULL,
`pessoas_id` INT NOT NULL,
FOREIGN KEY (`pessoas_id`) REFERENCES `pessoa` (`pessoa_id`)
);
-- Criação da tabela de turmas
CREATE TABLE `turma` (
`turma_id` INT PRIMARY KEY AUTO_INCREMENT,
`nome` VARCHAR(80) NOT NULL,
`periodo` ENUM ('manha', 'tarde', 'noite') NOT NULL,
`curso_id` INT NOT NULL,
FOREIGN KEY (`curso_id`) REFERENCES `curso` (`curso_id`)
);
-- Tabela feita para designar cada facilitador a turma
CREATE TABLE `facilitador_turma` (
`facilitador_id` INT NOT NULL,
`turma_id` INT NOT NULL,
FOREIGN KEY (`facilitador_id`) REFERENCES `facilitador` (`facilitador_id`),
FOREIGN KEY (`turma_id`) REFERENCES `turma` (`turma_id`)
);
-- Tabela de integração entre o estudante e sua turma
CREATE TABLE `estudante_turma` (
`matricula` VARCHAR(7),
`estudante_id` INT NOT NULL,
`turma_id` INT NOT NULL,
`status_id` INT NOT NULL,
FOREIGN KEY (`estudante_id`) REFERENCES `estudante` (`estudante_id`),
FOREIGN KEY (`turma_id`) REFERENCES `turma` (`turma_id`),
FOREIGN KEY (`status_id`) REFERENCES `status` (`status_id`)
);
/*Banco de dados desenvolvido por:
Malena Stefano
Dayane Stefane
Thiago Souza
Jhoshuan Cristopher
Emerson Chagas
*/