-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreates.sql
More file actions
334 lines (301 loc) · 8.33 KB
/
creates.sql
File metadata and controls
334 lines (301 loc) · 8.33 KB
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
CREATE Table Usuario(
ID SERIAL UNIQUE,
Nombre_Usuario varchar(20) UNIQUE,
Contraseña varchar(20) NOT NULL,
Constraint Pk_Usuario PRIMARY KEY (ID, Nombre_Usuario)
);
CREATE Table Lugar(
ID int,
Tipo varchar(3) NOT NULL,
Nombre varchar(40) NOT NULL,
Fk_Lugar int,
Constraint Pk_Lugar PRIMARY KEY(ID),
FOREIGN KEY (Fk_Lugar) REFERENCES Lugar (ID)
);
CREATE Table Cliente_Natural(
ID SERIAL UNIQUE,
rif varchar(12),
Ci int,
Num_Carnet varchar(12) UNIQUE,
email varchar(40) NOT NULL UNIQUE,
Nombre varchar(20) NOT NULL,
Apellido varchar(20) NOT NULL,
Apellido2 varchar(20),
FK_Usuario varchar(20),
FK_Lugar int NOT NULL,
Constraint Pk_ClienteNRif PRIMARY KEY (ID ,rif, Ci),
FOREIGN KEY (FK_Usuario) REFERENCES Usuario (Nombre_Usuario),
FOREIGN KEY (Fk_Lugar) REFERENCES Lugar(ID)
);
CREATE Table Cliente_Juridico(
ID SERIAL UNIQUE,
Rif varchar(12),
Razon_s varchar(20) NOT NULL UNIQUE,
Num_Carnet varchar(12) UNIQUE,
email varchar(40) NOT NULL UNIQUE,
Denominacion_C varchar(120) NOT NULL,
Pagina_web varchar(60),
FK_Usuario varchar(20) NOT NULL,
FK_Lugar int NOT NULL,
Constraint Pk_ClienteJ PRIMARY KEY(ID, Rif),
FOREIGN KEY (FK_Usuario) REFERENCES Usuario (Nombre_Usuario),
FOREIGN KEY (Fk_Lugar) REFERENCES Lugar(ID)
);
CREATE Table Contacto(
ID SERIAL,
Ci int,
Nombre varchar(20) NOT NULL,
Apellido varchar(20) NOT NULL,
Fk_JuridicoId int NOT NULL,
Fk_JuridicoRif varchar(14) NOT NULL,
Constraint Pk_Contacto PRIMARY KEY (ID),
FOREIGN KEY (Fk_JuridicoId,Fk_JuridicoRif) REFERENCES Cliente_Juridico(ID,Rif)
);
CREATE Table Sucursal(
Cod int,
Nombre varchar(60) NOT NULL,
FK_Lugar int NOT NULL,
Constraint Pk_Sucursal PRIMARY KEY(Cod),
FOREIGN KEY (Fk_Lugar) REFERENCES Lugar(ID)
);
CREATE Table Empleado(
ID SERIAL UNIQUE,
Ci int,
Nombre varchar(20) NOT NULL,
Nombre2 varchar(20),
Apellido varchar(20) NOT NULL,
Apellido2 varchar(20) NOT NULL,
Salario real NOT NULL,
FK_Lugar int NOT NULL,
Fk_Sucursal int NOT NULL,
Fk_Usuario varchar(20) NOT NULL,
Constraint Pk_Empleado PRIMARY KEY(ID, Ci),
FOREIGN KEY (Fk_Lugar) REFERENCES Lugar(ID),
FOREIGN KEY (Fk_Sucursal) REFERENCES Sucursal(Cod),
FOREIGN KEY (FK_Usuario) REFERENCES Usuario(Nombre_Usuario)
);
CREATE table Telefono(
ID SERIAL,
tipo varchar(20) NOT NULL,
numero varchar(15) NOT NULL,
Fk_Contacto int,
Fk_Natural int,
Fk_Empleado int,
Constraint Pk_Telefono PRIMARY KEY(ID),
FOREIGN KEY (Fk_Contacto) REFERENCES Contacto(ID),
FOREIGN KEY (Fk_Natural ) REFERENCES Cliente_natural(ID),
FOREIGN KEY (Fk_Empleado) REFERENCES Empleado(ID)
);
CREATE Table Sabor(
ID SERIAL,
Nombre varchar(20) NOT NULL UNIQUE,
Constraint Pk_Sabor PRIMARY KEY (Nombre)
);
CREATE Table Tipo_Producto(
ID SERIAL,
Nombre varchar(20) NOT NULL UNIQUE,
Constraint Pk_TProd PRIMARY KEY (nombre)
);
CREATE Table Fecha_Diario(
ID SERIAL,
Fecha_i timestamp NOT NULL,
Fecha_f timestamp NOT NULL,
Constraint Pk_Diario PRIMARY KEY(ID)
);
CREATE Table Producto(
ID SERIAL,
Nombre varchar(20) NOT NULL,
Precio real NOT NULL,
Descripcion varchar(120) NOT NULL,
Foto varchar(120),
Fk_Tprod varchar(20) NOT NULL,
Constraint Pk_Producto PRIMARY KEY(ID),
FOREIGN KEY (Fk_Tprod) REFERENCES Tipo_producto(nombre)
);
CREATE Table Diario_Dulce(
ID SERIAL,
Fk_Producto int NOT NULL,
Fk_Diario int NOT NULL,
Constraint Pk_DiarioDulce PRIMARY KEY(ID),
FOREIGN KEY (Fk_Producto) REFERENCES Producto(ID),
FOREIGN KEY (Fk_Diario) REFERENCES Fecha_Diario(ID)
);
CREATE Table Sabor_Producto(
ID SERIAL,
Fk_Producto int NOT NULL,
Fk_Sabor varchar(20) NOT NULL,
Constraint Pk_SaborProducto PRIMARY KEY (ID),
FOREIGN KEY (Fk_Producto) REFERENCES Producto(ID),
FOREIGN KEY (Fk_Sabor) REFERENCES Sabor(nombre)
);
CREATE Table Inventario(
ID SERIAL,
Cant_Stock int NOT NULL,
Cant_Max int NOT NULL,
Fk_Sucursal int NOT NULL,
Fk_Producto int NOT NULL,
Constraint Pk_Inventario PRIMARY KEY(ID),
FOREIGN KEY (Fk_Producto) REFERENCES Producto(ID),
FOREIGN KEY (Fk_Sucursal) REFERENCES Sucursal(Cod)
);
CREATE Table Almacen(
ID SERIAL,
Cant_Prod int NOT NULL,
pasillo varchar(30) NOT NULL,
zona varchar(30) NOT NULL,
Fk_Inventario int NOT NULL UNIQUE,
Constraint Pk_Alamecen PRIMARY KEY(ID),
FOREIGN KEY (Fk_Inventario) REFERENCES inventario(ID)
);
CREATE Table Credito(
ID SERIAL,
Numero varchar(30) NOT NULL,
Nombre_T varchar(50) NOT NULL,
Cod_S varchar(10) NOT NULL,
Fecha_V date NOT NULL,
Banco varchar(50) NOT NULL,
Fk_ClienteN int,
Fk_ClienteJ int,
Constraint Pk_Credito PRIMARY KEY(ID),
FOREIGN KEY (Fk_ClienteN) REFERENCES Cliente_Natural(ID),
FOREIGN KEY (Fk_ClienteJ) REFERENCES Cliente_Juridico(ID)
);
CREATE Table Debito(
ID SERIAL,
Numero varchar(30) NOT NULL,
Nombre_T varchar(50) NOT NULL,
Cod_S varchar(10) NOT NULL,
Banco varchar(50) NOT NULL,
Fk_ClienteN int,
Fk_ClienteJ int,
Constraint Pk_Debito PRIMARY KEY(ID),
FOREIGN KEY (Fk_ClienteN) REFERENCES Cliente_Natural(ID),
FOREIGN KEY (Fk_ClienteJ) REFERENCES Cliente_Juridico(ID)
);
CREATE Table Cheque(
ID SERIAL,
Numero_C varchar(50) NOT NULL,
Fecha_D timestamp NOT NULL,
Banco varchar(50) NOT NULL,
Fk_ClienteN int,
Fk_ClienteJ int,
Constraint Pk_Cheque PRIMARY KEY(ID),
FOREIGN KEY (Fk_ClienteN) REFERENCES Cliente_Natural(ID),
FOREIGN KEY (Fk_ClienteJ) REFERENCES Cliente_Juridico(ID)
);
CREATE Table Punto(
ID SERIAL,
Cant int NOT NULL,
Valor real NOT NULL,
Fk_ClienteN int,
Fk_ClienteJ int,
Constraint Pk_Punto PRIMARY KEY(ID),
FOREIGN KEY (Fk_ClienteN) REFERENCES Cliente_Natural(ID),
FOREIGN KEY (Fk_ClienteJ) REFERENCES Cliente_Juridico(ID)
);
CREATE Table Presupuesto(
ID SERIAL,
Monto int NOT NULL,
Fecha_D date NOT NULL,
Fk_UsuarioID int,
Fk_UsuarioN varchar(20),
Fk_ClienteN int,
Fk_ClienteJ int,
Constraint Pk_Presupuesto PRIMARY KEY(ID),
FOREIGN KEY (Fk_UsuarioID,FK_UsuarioN) REFERENCES Usuario(ID,Nombre_usuario),
FOREIGN KEY (Fk_ClienteN) REFERENCES Cliente_Natural(ID),
FOREIGN KEY (Fk_ClienteJ) REFERENCES Cliente_Juridico(ID)
);
CREATE Table Pedido(
ID SERIAL,
Monto real NOT NULL,
Fecha_C timestamp NOT NULL,
Fk_Sucursal int,
Fk_Presupuesto int UNIQUE,
Constraint Pk_Pedido PRIMARY KEY(ID),
FOREIGN KEY (Fk_Sucursal) REFERENCES Sucursal(Cod),
FOREIGN KEY (Fk_Presupuesto) REFERENCES Presupuesto(ID)
);
CREATE Table Status(
ID SERIAL,
Tipo varchar(20) NOT NULL,
Constraint Pk_Status PRIMARY KEY(ID)
);
CREATE Table EstadoPedido(
ID SERIAL,
Fecha_I timestamp NOT NULL,
Fk_Pedido int NOT NULL,
Fk_Status int NOT NULL,
Constraint Pk_EstadoPedido PRIMARY KEY(ID),
FOREIGN KEY (Fk_Pedido) REFERENCES Pedido(ID),
FOREIGN KEY (Fk_Status) REFERENCES Status(ID)
);
CREATE Table Beneficio(
ID SERIAL,
Tipo varchar(30),
Descripcion varchar(120) NOT NULL,
Fk_Empleado int NOT NULL,
Constraint Pk_Beneficio PRIMARY KEY(ID),
FOREIGN KEY (Fk_Empleado) REFERENCES Empleado(ID)
);
CREATE Table Vacacion(
ID SERIAL,
Tipo varchar(30),
Descripcion varchar(120) NOT NULL,
Fecha_I date NOT NULL,
Fecha_F date NOT NULL,
Fk_Empleado int NOT NULL,
Constraint Pk_Vacacion PRIMARY KEY(ID),
FOREIGN KEY (Fk_Empleado) REFERENCES Empleado(ID)
);
CREATE Table ROL(
ID SERIAL,
Nombre varchar(30),
Fk_Usuario int NOT NULL,
Constraint Pk_ROL PRIMARY KEY(ID),
FOREIGN KEY (Fk_Usuario) REFERENCES Usuario(ID)
);
CREATE Table Privilegio(
ID SERIAL,
Nombre varchar(40),
Constraint Pk_Privilegio PRIMARY KEY(ID)
);
CREATE Table Priv_Rol(
ID SERIAL,
Fk_privilegio int NOT NULL,
Fk_Rol int NOT NULL,
Constraint Pk_Priv_Rol PRIMARY KEY(ID),
FOREIGN KEY (Fk_privilegio) REFERENCES Privilegio(ID),
FOREIGN KEY (Fk_Rol) REFERENCES Rol(ID)
);
CREATE Table Asistencia(
ID SERIAL,
Hora_E timestamp NOT NULL,
Hora_S timestamp,
Fk_Empleado int NOT NULL,
Constraint Pk_Asistencia PRIMARY KEY(ID),
FOREIGN KEY (Fk_Empleado) REFERENCES Empleado(ID)
);
CREATE Table Pre_Pro(
ID SERIAL,
Cant int NOT NULL,
Total real NOT NULL,
Fk_Producto int NOT NULL,
Fk_Presupuesto int NOT NULL,
Constraint Pk_Pre_Pro PRIMARY KEY(ID),
FOREIGN KEY (Fk_Producto) REFERENCES Producto(ID),
FOREIGN KEY (Fk_Presupuesto) REFERENCES Presupuesto(ID)
);
CREATE Table Met_Ped(
ID SERIAL,
Monto real NOT NULL,
Fk_Pedido int,
Fk_Cheque int,
Fk_Credito int,
Fk_Debito int,
Constraint Pk_Met_Ped PRIMARY KEY(ID),
FOREIGN KEY (Fk_Pedido) REFERENCES Pedido(ID),
FOREIGN KEY (Fk_Cheque) REFERENCES Cheque(ID),
FOREIGN KEY (Fk_Credito) REFERENCES Credito(ID),
FOREIGN KEY (Fk_Debito) REFERENCES Debito(ID)
);