-
Notifications
You must be signed in to change notification settings - Fork 1
/
tables.sql
169 lines (144 loc) · 5.58 KB
/
tables.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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
-- Created by Vertabelo (http://vertabelo.com)
-- Last modification date: 2016-11-23 01:44:32.166
-- tables
-- Table: Egresado
CREATE TABLE Egresado (
DocumentoID int NOT NULL,
Semestre_Graduacion varchar(6) NOT NULL,
Correo_Estudiantil varchar(50) NULL,
Empresa varchar(100) NULL,
Labora varchar(20) NULL,
Cargo varchar(20) NULL,
Fecha_Graduacion date NULL,
Carrera varchar(50) NOT NULL,
UNIQUE INDEX Correo_Estudiantil (Correo_Estudiantil),
CONSTRAINT Egresado_pk PRIMARY KEY (DocumentoID)
);
-- Table: Egresado_Empresa
CREATE TABLE Egresado_Empresa (
Nombre varchar(100) NOT NULL,
Direccion varchar(100) NULL,
Telefono int NOT NULL,
CONSTRAINT Egresado_Empresa_pk PRIMARY KEY (Nombre)
);
-- Table: Empresa_Convenio
CREATE TABLE Empresa_Convenio (
ConvenioID int NOT NULL,
Nombre varchar(30) NOT NULL,
Telefono int NOT NULL,
Direccion varchar(100) NOT NULL,
Contacto varchar(20) NOT NULL,
CONSTRAINT Empresa_Convenio_pk PRIMARY KEY (ConvenioID)
);
-- Table: Estado_afiliacion
CREATE TABLE Estado_afiliacion (
DocumentoID int NOT NULL,
Fecha_Inicio date NULL,
Fecha_Fin date NOT NULL,
Estado varchar(40) NOT NULL CHECK (Estado in ('AFILIADO INACTIVO','AFILIADO INACTIVO - PENDIENTE PAGO CUOTA AFILIACIÓN','AFILIADO ACTIVO')),
CONSTRAINT Estado_afiliacion_pk PRIMARY KEY (DocumentoID)
);
-- Table: Estudiante
CREATE TABLE Estudiante (
Codigo_Estudiante int NOT NULL,
DocumentoID int NOT NULL,
Semestre_Ponderado int NULL,
Carrera varchar(50) NOT NULL,
CONSTRAINT Estudiante_pk PRIMARY KEY (Codigo_Estudiante)
);
-- Table: Pago_Cuota
CREATE TABLE Pago_Cuota (
PagoID int NOT NULL,
Fecha_Cobro date NULL,
Valor_Pago int NULL,
DocumentoID int NOT NULL,
Fecha_Pago date NULL,
CONSTRAINT Pago_Cuota_pk PRIMARY KEY (PagoID)
);
-- Table: Persona
CREATE TABLE Persona (
DocumentoID int NOT NULL,
TipoDocumentoID varchar(2) NULL CHECK (TipoDocumentoID in ('CC','CE')),
Nombre varchar(110) NULL,
Apellido varchar(100) NOT NULL,
Direccion varchar(30) NULL,
Correo_Personal varchar(100) NULL,
Genero varchar(30) NOT NULL,
Telefono bigint NULL CHECK (Telefono>1000000 AND Telefono<=9999999),
Celular bigint NOT NULL CHECK (Celular>1000000 AND Celular<=9999999999),
UNIQUE INDEX Celular (Celular),
UNIQUE INDEX Correo_Personal (Correo_Personal),
CONSTRAINT Persona_pk PRIMARY KEY (DocumentoID)
);
-- Table: Persona_Servicios
CREATE TABLE Persona_Servicios (
Persona_DocumentoID int NOT NULL,
Servicio_ServicioID int NOT NULL,
CONSTRAINT Persona_Servicios_pk PRIMARY KEY (Persona_DocumentoID,Servicio_ServicioID)
);
-- Table: Rol_Persona
CREATE TABLE Rol_Persona (
DocumentoID int NOT NULL,
Roles_rol int NOT NULL,
Clave varchar(150) NOT NULL,
CONSTRAINT Rol_Persona_pk PRIMARY KEY (DocumentoID)
)
;
-- Table: Roles
CREATE TABLE Roles (
RolID int NOT NULL AUTO_INCREMENT,
Nombre varchar(50) NOT NULL,
CONSTRAINT Roles_pk PRIMARY KEY (RolID)
);
-- Table: Servicio
CREATE TABLE Servicio (
ServicioID int NOT NULL,
Nombre varchar(30) NOT NULL,
Descripcion varchar(200) NOT NULL,
ConvenioID int NOT NULL,
CONSTRAINT Servicio_pk PRIMARY KEY (ServicioID)
);
-- Table: Solicitud_Afiliacion
CREATE TABLE Solicitud_Afiliacion (
SolicitudID int NOT NULL AUTO_INCREMENT,
DocumentoID int NOT NULL,
Fecha_Solicitud timestamp NULL,
Estado_Solicitud varchar(30) NULL,
Comentario text NULL,
CONSTRAINT Solicitud_Afiliacion_pk PRIMARY KEY (SolicitudID)
);
-- foreign keys
-- Reference: Egresado_Persona (table: Egresado)
ALTER TABLE Egresado ADD CONSTRAINT Egresado_Persona FOREIGN KEY (DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Empresa_Egresado (table: Egresado)
ALTER TABLE Egresado ADD CONSTRAINT Empresa_Egresado FOREIGN KEY (Empresa)
REFERENCES Egresado_Empresa (Nombre);
-- Reference: Estado_afiliacion_Persona (table: Estado_afiliacion)
ALTER TABLE Estado_afiliacion ADD CONSTRAINT Estado_afiliacion_Persona FOREIGN KEY (DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Estudiante_Persona (table: Estudiante)
ALTER TABLE Estudiante ADD CONSTRAINT Estudiante_Persona FOREIGN KEY (DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Pago_Cuota_Egresado (table: Pago_Cuota)
ALTER TABLE Pago_Cuota ADD CONSTRAINT Pago_Cuota_Egresado FOREIGN KEY (DocumentoID)
REFERENCES Egresado (DocumentoID);
-- Reference: Persona_Servicios_Persona (table: Persona_Servicios)
ALTER TABLE Persona_Servicios ADD CONSTRAINT Persona_Servicios_Persona FOREIGN KEY (Persona_DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Persona_Servicios_Servicio (table: Persona_Servicios)
ALTER TABLE Persona_Servicios ADD CONSTRAINT Persona_Servicios_Servicio FOREIGN KEY (Servicio_ServicioID)
REFERENCES Servicio (ServicioID);
-- Reference: Persona_Solicitud_Afiliacion (table: Solicitud_Afiliacion)
ALTER TABLE Solicitud_Afiliacion ADD CONSTRAINT Persona_Solicitud_Afiliacion FOREIGN KEY (DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Rol_Persona_Persona (table: Rol_Persona)
ALTER TABLE Rol_Persona ADD CONSTRAINT Rol_Persona_Persona FOREIGN KEY (DocumentoID)
REFERENCES Persona (DocumentoID);
-- Reference: Rol_Persona_Roles (table: Rol_Persona)
ALTER TABLE Rol_Persona ADD CONSTRAINT Rol_Persona_Roles FOREIGN KEY (Roles_rol)
REFERENCES Roles (RolID);
-- Reference: Servicio_Empresa_Convenio (table: Servicio)
ALTER TABLE Servicio ADD CONSTRAINT Servicio_Empresa_Convenio FOREIGN KEY (ConvenioID)
REFERENCES Empresa_Convenio (ConvenioID);
-- End of file.