Estructura de aplicación en PHP para System i La aplicación esta diseñada para IBM DB2 en System i, UNIX y Windows. Se trata de la gestión de una entidad deportiva. A modo de ejemplo de como está desarrollada se presentan capturas de diversas pantallas. En su construcción se hace uso intensivo de la tecnología Ajax, aportando una funcionalidad semejante a otras aplicaciones de escritorio. Se ha probado exhaustivamente su funcionamiento en Internet Explorer que actualmente es considerado de uso mayoritario en los navegadores de escritorio. El código fuente del ejemplo se puede obtener en el siguiente enlace: http://www.marce.com/docs/systems/anexos/deporweb.exe Archivo: listado_alumnos_monitor.log Monitor: 0001 | Codigo servicio: 002 | Id linea: 001 | Fecha inicio: 02/01/2012 | Fecha fin: 02/03/2012 | 02/01/2012 | Numero: 0000000002 | Numero socio: 00000002 | Puerta: 002 | Hora: 2012-01-02 09:02:00.000000 apellidos: SOCIO-B APELLIDO1-B APELLIDO2-B Monitor: 0001 | Codigo servicio: 003 | Id linea: 001 | Fecha inicio: 03/01/2012 | Fecha fin: 03/03/2012 | 03/01/2012 | Numero: 0000000003 | Numero socio: 00000003 | Puerta: 003 | Hora: 2012-01-03 09:03:00.000000 apellidos: SOCIO-C APELLIDO1-C APELLIDO2-C Monitor: 0001 | Codigo servicio: 004 | Id linea: 001 | Fecha inicio: 04/01/2012 | Fecha fin: 04/03/2012 | 04/01/2012 | Numero: 0000000004 | Numero socio: 00000004 | Puerta: 004 | Hora: 2012-01-04 09:04:00.000000 apellidos: SOCIO-D APELLIDO1-D APELLIDO2-D Monitor: 0001 | Codigo servicio: 005 | Id linea: 001 | Fecha inicio: 05/01/2012 | Fecha fin: 05/03/2012 | 05/01/2012 | Numero: 0000000005 | Numero socio: 00000005 | Puerta: 005 | Hora: 2012-01-05 09:05:00.000000 apellidos: SOCIO-E APELLIDO1-E APELLIDO2-E Monitor: 0001 | Codigo servicio: 006 | Id linea: 001 | Fecha inicio: 06/01/2012 | Fecha fin: 06/03/2012 | 06/01/2012 | Numero: 0000000006 | Numero socio: 00000006 | Puerta: 006 | Hora: 2012-01-06 09:06:00.000000 apellidos: SOCIO-F APELLIDO1-F APELLIDO2-F Monitor: 0001 | Codigo servicio: 009 | Id linea: 001 | Fecha inicio: 09/01/2012 | Fecha fin: 09/03/2012 | 09/01/2012 | Numero: 0000000009 | Numero socio: 00000009 | Puerta: 003 | Hora: 2012-01-09 09:09:00.000000 apellidos: SOCIO-I APELLIDO1-I APELLIDO2-I Monitor: 0001 | Codigo servicio: 010 | Id linea: 001 | Fecha inicio: 10/01/2012 | Fecha fin: 10/03/2012 | 10/01/2012 | Numero: 0000000010 | Numero socio: 00000010 | Puerta: 004 | Hora: 2012-01-10 09:10:00.000000 apellidos: SOCIO-J APELLIDO1-J APELLIDO2-J Monitor: 0001 | Codigo servicio: 011 | Id linea: 001 | Fecha inicio: 11/01/2012 | Fecha fin: 11/03/2012 | 11/01/2012 | Numero: 0000000011 | Numero socio: 00000011 | Puerta: 005 | Hora: 2012-01-11 09:11:00.000000 apellidos: SOCIO-K APELLIDO1-K APELLIDO2-K Monitor: 0001 | Codigo servicio: 012 | Id linea: 001 | Fecha inicio: 12/01/2012 | Fecha fin: 12/03/2012 | 12/01/2012 | Numero: 0000000012 | Numero socio: 00000012 | Puerta: 006 | Hora: 2012-01-12 09:12:00.000000 apellidos: SOCIO-L APELLIDO1-L APELLIDO2-L Monitor: 0001 | Codigo servicio: 012 | Id linea: 001 | Fecha inicio: 12/01/2012 | Fecha fin: 12/03/2012 | 12/03/2012 | Numero: 0000000013 | Numero socio: 00000012 | Puerta: 001 | Hora: 2012-03-12 09:13:00.000000 apellidos: SOCIO-L APELLIDO1-L APELLIDO2-L Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Data: | Nombre Página: 1 CreateTables.sql -- Create schema CREATE SCHEMA DEPORWEB; SET SCHEMA DEPORWEB; -- Tabla cobros CREATE TABLE COBROS ( SERIE_COBRO CHAR(1) NOT NULL, NUMERO_COBRO CHAR(10) NOT NULL, TIPO_ORIGEN NUMERIC(1) NOT NULL, CODIGO_ORIGEN CHAR(10) NOT NULL); ALTER TABLE COBROS ADD CONSTRAINT COBROS_CLAVE PRIMARY KEY(SERIE_COBRO, NUMERO_COBRO); -- Tabla codpos CREATE TABLE CODPOS ( CP CHAR(5) NOT NULL, POBLACION CHAR(50) NOT NULL); ALTER TABLE CODPOS ADD CONSTRAINT CODPOS_CLAVE PRIMARY KEY(CP,POBLACION); -- Tabla contadores CREATE TABLE CONTADORES ( NOMBRE CHAR(30) NOT NULL, VALOR NUMERIC(10) NOT NULL); ALTER TABLE CONTADORES ADD CONSTRAINT CONTADORES_CLAVE PRIMARY KEY(NOMBRE); -- Tabla ctrl_accesos CREATE TABLE CTRL_ACCESOS ( CODIGO CHAR(10) NOT NULL, CODIGO_PUERTA CHAR(3) NOT NULL, CODIGO_SOCIO CHAR(8) NOT NULL, FECHA_HORA TIMESTAMP NOT NULL); ALTER TABLE CTRL_ACCESOS ADD CONSTRAINT CTRL_ACCESOS_CLAVE PRIMARY KEY(CODIGO); -- Tabla cuotas_esp CREATE TABLE CUOTAS_ESP ( CODIGO_CUOTA CHAR(10) NOT NULL, CODIGO_CUO_ESP CHAR(3) NOT NULL, DESCRIPCION CHAR(50) NOT NULL, IMPORTE NUMERIC(9, 2) NOT NULL, CODIGO_ESPACIO CHAR(10) NOT NULL, ESTADO CHAR(1) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, IMP_IVA NUMERIC(9, 2) NOT NULL); ALTER TABLE CUOTAS_ESP ADD CONSTRAINT CUOTAS_ESP_CLAVE PRIMARY KEY(CODIGO_CUOTA); -- Tabla entidad CREATE TABLE ENTIDAD ( RAZON_SOCIAL CHAR(50) NOT NULL, NOMBRE CHAR(50) NOT NULL, NIF CHAR(15) NOT NULL, DIRECCION CHAR(50) NOT NULL, CP CHAR(5) NOT NULL, POBLACION CHAR(50) NOT NULL, PROVINCIA CHAR(40) NOT NULL, TELEFONO_1 CHAR(15) NOT NULL, TELEFONO_2 CHAR(15) NOT NULL, FAX CHAR(15) NOT NULL, Página 1 CreateTables.sql WEB CHAR(200) NOT NULL, EMAIL CHAR(200) NOT NULL, NUM_SOCIOS CHAR(8) NOT NULL, LOGO BLOB(1048576) NOT NULL); ALTER TABLE ENTIDAD ADD CONSTRAINT ENTIDAD_CLAVE PRIMARY KEY(RAZON_SOCIAL); -- Tabla espacios CREATE TABLE ESPACIOS ( CODIGO_ESPACIO CHAR(10) NOT NULL, DESCRIPCION CHAR(100) NOT NULL, REFERENCIA CHAR(4) NOT NULL, N_NIVEL_1 CHAR(5) NOT NULL, N_NIVEL_2 CHAR(5) NOT NULL, N_NIVEL_3 CHAR(5) NOT NULL, N_NIVEL_4 CHAR(5) NOT NULL, F_ALTA DATE NOT NULL, F_INICIO DATE NOT NULL, F_FIN DATE NOT NULL, N_PLAZAS NUMERIC(5) NOT NULL, RESERVABLE NUMERIC(1) NOT NULL, ESTADO CHAR(1) NOT NULL, LUN SMALLINT NOT NULL, LUN_H_INICIO CHAR(5) NOT NULL, LUN_H_FIN CHAR(5) NOT NULL, LUN_DURACION CHAR(5) NOT NULL, MAR SMALLINT NOT NULL, MAR_H_INICIO CHAR(5) NOT NULL, MAR_H_FIN CHAR(5) NOT NULL, MAR_DURACION CHAR(5) NOT NULL, MIE SMALLINT NOT NULL, MIE_H_INICIO CHAR(5) NOT NULL, MIE_H_FIN CHAR(5) NOT NULL, MIE_DURACION CHAR(5) NOT NULL, JUE SMALLINT NOT NULL, JUE_H_INICIO CHAR(5) NOT NULL, JUE_H_FIN CHAR(5) NOT NULL, JUE_DURACION CHAR(5) NOT NULL, VIE SMALLINT NOT NULL, VIE_H_INICIO CHAR(5) NOT NULL, VIE_H_FIN CHAR(5) NOT NULL, VIE_DURACION CHAR(5) NOT NULL, SAB SMALLINT NOT NULL, SAB_H_INICIO CHAR(5) NOT NULL, SAB_H_FIN CHAR(5) NOT NULL, SAB_DURACION CHAR(5) NOT NULL, DOM SMALLINT NOT NULL, DOM_H_INICIO CHAR(5) NOT NULL, DOM_H_FIN CHAR(5) NOT NULL, DOM_DURACION CHAR(5) NOT NULL); ALTER TABLE ESPACIOS ADD CONSTRAINT ESPACIOS_CLAVE PRIMARY KEY(CODIGO_ESPACIO); -- Tabla festivos_esp CREATE TABLE FESTIVOS_ESP ( CODIGO_FEST CHAR(10) NOT NULL, FECHA DATE NOT NULL, DESCRIPCION CHAR(50) NOT NULL, CODIGO_ESPACIO CHAR(10) NOT NULL, ESTADO CHAR(1) NOT NULL); ALTER TABLE FESTIVOS_ESP ADD CONSTRAINT FESTIVOS_ESP_CLAVE PRIMARY KEY(CODIGO_FEST); Página 2 CreateTables.sql -- Tabla horarios_serv CREATE TABLE HORARIOS_SERV ( CODIGO_SERVICIO CHAR(3) NOT NULL, CODIGO_LINEA CHAR(3) NOT NULL, F_INICIO DATE NOT NULL, F_FIN DATE NOT NULL, N_PLAZAS NUMERIC(4) NOT NULL, CODIGO_MONITOR CHAR(4) NOT NULL, CODIGO_ESPACIO CHAR(10) NOT NULL, PUERTA_1 CHAR(3) NOT NULL, PUERTA_2 CHAR(3) NOT NULL, PUERTA_3 CHAR(3) NOT NULL, PUERTA_4 CHAR(3) NOT NULL, OBSERVACIONES CHAR(60) NOT NULL, REFERENCIA CHAR(30) NOT NULL, LUN SMALLINT NOT NULL, LUN_H_INICIO CHAR(5) NOT NULL, LUN_H_FIN CHAR(5) NOT NULL, MAR SMALLINT NOT NULL, MAR_H_INICIO CHAR(5) NOT NULL, MAR_H_FIN CHAR(5) NOT NULL, MIE SMALLINT NOT NULL, MIE_H_INICIO CHAR(5) NOT NULL, MIE_H_FIN CHAR(5) NOT NULL, JUE SMALLINT NOT NULL, JUE_H_INICIO CHAR(5) NOT NULL, JUE_H_FIN CHAR(5) NOT NULL, VIE SMALLINT NOT NULL, VIE_H_INICIO CHAR(5) NOT NULL, VIE_H_FIN CHAR(5) NOT NULL, SAB SMALLINT NOT NULL, SAB_H_INICIO CHAR(5) NOT NULL, SAB_H_FIN CHAR(5) NOT NULL, DOM SMALLINT NOT NULL, DOM_H_INICIO CHAR(5) NOT NULL, DOM_H_FIN CHAR(5) NOT NULL); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_CLAVE PRIMARY KEY(CODIGO_SERVICIO,CODIGO_LINEA); -- Tabla imp_serv_edad CREATE TABLE IMP_SERV_EDAD ( CODIGO_SERVICIO CHAR(3) NOT NULL, NUMERO_LINEA INT NOT NULL, EDAD_INICIAL NUMERIC(3) NOT NULL, EDAD_FINAL NUMERIC(3) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, IMP_PLAZ_SOC NUMERIC(10, 2) NOT NULL, IMP_PLAZ_NOS NUMERIC(10, 2) NOT NULL, IVA_PLAZ_SOC NUMERIC(9, 2) NOT NULL, IVA_PLAZ_NOS NUMERIC(9, 2) NOT NULL, TOT_PLAZ_SOC NUMERIC(10, 2) NOT NULL, TOT_PLAZ_NOS NUMERIC(10, 2) NOT NULL, IMP_CONT_SOC NUMERIC(10, 2) NOT NULL, IMP_CONT_NOS NUMERIC(10, 2) NOT NULL, IVA_CONT_SOC NUMERIC(10, 2) NOT NULL, IVA_CONT_NOS NUMERIC(10, 2) NOT NULL, TOT_CONT_SOC NUMERIC(10, 2) NOT NULL, TOT_CONT_NOS NUMERIC(10, 2) NOT NULL); ALTER TABLE IMP_SERV_EDAD ADD CONSTRAINT IMP_SERV_EDAD_CLAVE PRIMARY Página 3 CreateTables.sql KEY(CODIGO_SERVICIO,NUMERO_LINEA); -- Tabla inscripcion_serv CREATE TABLE INSCRIPCION_SERV ( CODIGO_INSCRIPCION CHAR(10) NOT NULL, DESCRIPCION CHAR(50) NOT NULL, CODIGO_SERVICIO CHAR(3) NOT NULL, CODIGO_LINEA CHAR(3) NOT NULL, CODIGO_SOCIO CHAR(8) NOT NULL, CODIGO_PERSONA CHAR(10) NOT NULL, F_INSCRIPCION DATE NOT NULL, F_BAJA DATE NOT NULL, PRIORIDAD NUMERIC(1) NOT NULL, RAZON_PRIORIDAD CHAR(50) NOT NULL, ESTADO NUMERIC(1) NOT NULL, TIPO_CUOTA CHAR(2) NOT NULL, N_RECIBOS NUMERIC(4) NOT NULL, MES_RECIBO_1 CHAR(2) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, IMPORTE_SERV NUMERIC(9, 2) NOT NULL, IVA_SERV NUMERIC(9, 2) NOT NULL, TOTAL_SERV NUMERIC(9, 2) NOT NULL, PAGADA_ALTA NUMERIC(1) NOT NULL, COBRADO_TODO NUMERIC(1) NOT NULL, P_PROPORCIONAL NUMERIC(1) NOT NULL, F_ULTIMA_FAC DATE NOT NULL); ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_CLAVE PRIMARY KEY(CODIGO_INSCRIPCION); -- Tabla lineas_factura CREATE TABLE LINEAS_FACTURA ( SERIE_FACTURA CHAR(1) NOT NULL, NUMERO_FACTURA CHAR(10) NOT NULL, TIPO_ORIGEN NUMERIC(1) NOT NULL, CODIGO_ORIGEN CHAR(10) NOT NULL); ALTER TABLE LINEAS_FACTURA ADD CONSTRAINT LINEAS_FACTURA_CLAVE PRIMARY KEY(SERIE_FACTURA,NUMERO_FACTURA); -- Tabla medios CREATE TABLE MEDIOS ( CODIGO CHAR(2) NOT NULL, DESCRIPCION CHAR(50) NOT NULL); ALTER TABLE MEDIOS ADD CONSTRAINT MEDIOS_CLAVE PRIMARY KEY(CODIGO); -- Tabla monitores CREATE TABLE MONITORES ( CODIGO_MONITOR CHAR(4) NOT NULL, NOMBRE CHAR(30) NOT NULL, APELLIDO_1 CHAR(30) NOT NULL, APELLIDO_2 CHAR(30) NOT NULL, DNI CHAR(15) NOT NULL, DIRECCION_1 CHAR(50) NOT NULL, DIRECCION_2 CHAR(50) NOT NULL, CP CHAR(5) NOT NULL, POBLACION CHAR(50) NOT NULL, PROVINCIA CHAR(50) NOT NULL, TELEFONO_1 CHAR(15) NOT NULL, TELEFONO_2 CHAR(15) NOT NULL, OBSERVACIONES VARCHAR(2000) NOT NULL); Página 4 CreateTables.sql ALTER TABLE MONITORES ADD CONSTRAINT MONITORES_CLAVE PRIMARY KEY(CODIGO_MONITOR); -- Tabla niveles CREATE TABLE NIVELES ( CODIGO CHAR(2) NOT NULL, DESCRIPCION CHAR(50) NOT NULL); ALTER TABLE NIVELES ADD CONSTRAINT NIVELES_CLAVE PRIMARY KEY(CODIGO); -- Tabla personas CREATE TABLE PERSONAS ( CODIGO_PERSONA CHAR(10) NOT NULL, NOMBRE CHAR(30) NOT NULL, APELLIDO_1 CHAR(30) NOT NULL, APELLIDO_2 CHAR(30) NOT NULL, DNI CHAR(15) NOT NULL, DIRECCION CHAR(50) NOT NULL, CP CHAR(5) NOT NULL, POBLACION CHAR(50) NOT NULL, PROVINCIA CHAR(40) NOT NULL, TELEFONO_1 CHAR(15) NOT NULL, TELEFONO_2 CHAR(15) NOT NULL, EMAIL CHAR(100) NOT NULL, F_NACIMIENTO DATE NOT NULL, FOTO BLOB(524288) NOT NULL); ALTER TABLE PERSONAS ADD CONSTRAINT PERSONAS_CLAVE PRIMARY KEY(CODIGO_PERSONA); -- Tabla provincias CREATE TABLE PROVINCIAS ( CODIGO CHAR(2) NOT NULL, PROVINCIA CHAR(13) NOT NULL); ALTER TABLE PROVINCIAS ADD CONSTRAINT PROVINCIAS_CLAVE PRIMARY KEY(CODIGO); -- Tabla puertas CREATE TABLE PUERTAS ( CODIGO CHAR(3) NOT NULL, DESCRIPCION CHAR(70) NOT NULL); ALTER TABLE PUERTAS ADD CONSTRAINT PUERTAS_CLAVE PRIMARY KEY(CODIGO); -- Tabla reservas CREATE TABLE RESERVAS ( CODIGO_RESERVA CHAR(10) NOT NULL, CODIGO_ESPACIO CHAR(10) NOT NULL, CODIGO_CUOTA CHAR(10) NOT NULL, FECHA DATE NOT NULL, H_INICIO CHAR(5) NOT NULL, H_FIN CHAR(5) NOT NULL, RESERVADO SMALLINT NOT NULL, CODIGO_SOCIO CHAR(8) NOT NULL, COBRADO SMALLINT NOT NULL, IMPORTE NUMERIC(9, 2) NOT NULL, FESTIVO SMALLINT NOT NULL, CODIGO_SRV_LIN CHAR(6) NOT NULL, ESTADO CHAR(1) NOT NULL, NOMBRE CHAR(40) NOT NULL, OBSERVACIONES CHAR(60) NOT NULL, FECHA_REGISTRO DATE NOT NULL); Página 5 CreateTables.sql ALTER TABLE RESERVAS ADD CONSTRAINT RESERVAS_CLAVE PRIMARY KEY(CODIGO_RESERVA); -- Tabla servicios CREATE TABLE SERVICIOS ( CODIGO_SERVICIO CHAR(3) NOT NULL, DESCRIPCION CHAR(50) NOT NULL, F_ALTA DATE NOT NULL, F_BAJA DATE NOT NULL, N_RECIBOS NUMERIC(4) NOT NULL, N_SESIONES CHAR(2) NOT NULL, TIPO_SERVICIO CHAR(3) NOT NULL, TIPO_CUOTA CHAR(2) NOT NULL, NIVEL_DESEADO CHAR(2) NOT NULL, NIVEL_MINIMO CHAR(2) NOT NULL, OBSERVACIONES VARCHAR(2000) NOT NULL, REFERENCIA CHAR(15) NOT NULL, CTRL_USO_ACCESO NUMERIC(1) NOT NULL, INSCR_SEMANAL NUMERIC(1) NOT NULL, ACREDITACION CHAR(8) NOT NULL, MESES_CADENCIA CHAR(2) NOT NULL, SERV_CADUCADO NUMERIC(1) NOT NULL, CTRL_INSCRITOS NUMERIC(1) NOT NULL, MIN_PREV_ENT NUMERIC(2) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, IMP_PLAZ_SOC NUMERIC(10, 2) NOT NULL, IMP_PLAZ_NOS NUMERIC(10, 2) NOT NULL, IVA_PLAZ_SOC NUMERIC(9, 2) NOT NULL, IVA_PLAZ_NOS NUMERIC(9, 2) NOT NULL); ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_CLAVE PRIMARY KEY(CODIGO_SERVICIO); -- Tabla servicios_monitor CREATE TABLE SERVICIOS_MONITOR ( CODIGO_MONITOR CHAR(4) NOT NULL, CODIGO_SRV_LIN CHAR(6) NOT NULL, F_INICIO DATE NOT NULL, F_FIN DATE NOT NULL, DESCRIPCION CHAR(40) NOT NULL, REFERENCIA CHAR(30) NOT NULL); ALTER TABLE SERVICIOS_MONITOR ADD CONSTRAINT SERVICIOS_MONITOR_CLAVE PRIMARY KEY(CODIGO_MONITOR,CODIGO_SRV_LIN); -- Tabla socios CREATE TABLE SOCIOS ( CODIGO_SOCIO CHAR(8) NOT NULL, NOMBRE CHAR(30) NOT NULL, APELLIDO_1 CHAR(30) NOT NULL, APELLIDO_2 CHAR(30) NOT NULL, DNI CHAR(15) NOT NULL, DIRECCION CHAR(50) NOT NULL, CP CHAR(5) NOT NULL, POBLACION CHAR(50) NOT NULL, PROVINCIA CHAR(40) NOT NULL, TELEFONO_1 CHAR(15) NOT NULL, TELEFONO_2 CHAR(15) NOT NULL, EMAIL CHAR(100) NOT NULL, F_NACIMIENTO DATE NOT NULL, FOTO BLOB(524288) NOT NULL); ALTER TABLE SOCIOS ADD CONSTRAINT SOCIOS_CLAVE PRIMARY KEY(CODIGO_SOCIO); Página 6 CreateTables.sql -- Tabla tipos_cuota CREATE TABLE TIPOS_CUOTA ( CODIGO CHAR(2) NOT NULL, DESCRIPCION CHAR(50) NOT NULL); ALTER TABLE TIPOS_CUOTA ADD CONSTRAINT TIPOS_CUOTA_CLAVE PRIMARY KEY(CODIGO); -- Tabla tipos_iva CREATE TABLE TIPOS_IVA ( CODIGO CHAR(2) NOT NULL, DESCRIPCION CHAR(50) NOT NULL, PORCENTAJE NUMERIC(4, 2) NOT NULL); ALTER TABLE TIPOS_IVA ADD CONSTRAINT TIPOS_IVA_CLAVE PRIMARY KEY(CODIGO); -- Tabla tipos_servicio CREATE TABLE TIPOS_SERVICIO ( CODIGO CHAR(3) NOT NULL, DESCRIPCION CHAR(50) NOT NULL, OBSERVACIONES VARCHAR(2000) NOT NULL); ALTER TABLE TIPOS_SERVICIO ADD CONSTRAINT TIPOS_SERVICIO_CLAVE PRIMARY KEY(CODIGO); -- Tabla usuarios CREATE TABLE USUARIOS ( USUARIO CHAR(20) NOT NULL, NOMBRE CHAR(50) NOT NULL, CLAVE CHAR(50) NOT NULL); ALTER TABLE USUARIOS ADD CONSTRAINT USUARIOS_CLAVE PRIMARY KEY(USUARIO); -- Tabla ventas_cab CREATE TABLE VENTAS_CAB ( CODIGO_VENTA CHAR(10) NOT NULL, SERIE CHAR(1) NOT NULL, CODIGO_TICKET CHAR(10) NOT NULL, FECHA DATE NOT NULL, HORA CHAR(5) NOT NULL, CODIGO_USUARIO CHAR(20) NOT NULL, CODIGO_SOCIO CHAR(8) NOT NULL, FECHA_VTO DATE NOT NULL, PAGADO NUMERIC(1) NOT NULL, IMP_BASE NUMERIC(10, 2) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, POR_IVA NUMERIC(4, 2) NOT NULL, IMP_IVA NUMERIC(9, 2) NOT NULL, IMP_TOTAL NUMERIC(10, 2) NOT NULL, ENTREGADO NUMERIC(10, 2) NOT NULL, ABONO CHAR(10) NOT NULL, ABONADO NUMERIC(1) NOT NULL, TIPO_DOCUMENTO NUMERIC(1) NOT NULL); ALTER TABLE VENTAS_CAB ADD CONSTRAINT VENTAS_CAB_CLAVE PRIMARY KEY(CODIGO_VENTA); -- Tabla ventas_lin CREATE TABLE VENTAS_LIN ( CODIGO_VENTA CHAR(10) NOT NULL, CODIGO_LINEA CHAR(3) NOT NULL, SERIE CHAR(1) NOT NULL, CODIGO_TICKET CHAR(10) NOT NULL, CODIGO_ARTICULO CHAR(6) NOT NULL, TEXTO_ARTICULO CHAR(50) NOT NULL, Página 7 CreateTables.sql CANTIDAD NUMERIC(4) NOT NULL, PRECIO_UNIDAD NUMERIC(10, 2) NOT NULL, DESCUENTO NUMERIC(4, 2) NOT NULL, IMP_LIN NUMERIC(10, 2) NOT NULL, CODIGO_IVA CHAR(2) NOT NULL, IMP_IVA NUMERIC(10, 2) NOT NULL, TIPO_DOCUMENTO NUMERIC(1) NOT NULL, CODIGO_RESERVA CHAR(10) NOT NULL); ALTER TABLE VENTAS_LIN ADD CONSTRAINT VENTAS_LIN_CLAVE PRIMARY KEY(CODIGO_VENTA,CODIGO_LINEA); -- Tabla ventas_pie CREATE TABLE VENTAS_PIE ( CODIGO_VENTA CHAR(10) NOT NULL, CODIGO_MEDIO CHAR(2) NOT NULL, IMPORTE NUMERIC(10, 2) NOT NULL); ALTER TABLE VENTAS_PIE ADD CONSTRAINT VENTAS_PIE_CLAVE PRIMARY KEY(CODIGO_VENTA,CODIGO_MEDIO); -- Clave foranea cobros CREATE INDEX COBROS_CODIGO_ORIGEN ON COBROS (CODIGO_ORIGEN); ALTER TABLE COBROS ADD CONSTRAINT COBROS_INSCRIPCION_SERV FOREIGN KEY(CODIGO_ORIGEN) REFERENCES INSCRIPCION_SERV (CODIGO_INSCRIPCION); -- Clave foranea codpos CREATE INDEX CODPOS_CP ON CODPOS (CP); -- ALTER TABLE CODPOS ADD CONSTRAINT CODPOS_PROVINCIAS FOREIGN KEY(SUBSTRING(CP, 1, 2)) -- REFERENCES PROVINCIAS (CODIGO); -- Clave foranea ctrl_accesos CREATE INDEX CTRL_ACCESOS_CODIGO_PUERTA ON CTRL_ACCESOS (CODIGO_PUERTA); ALTER TABLE CTRL_ACCESOS ADD CONSTRAINT CTRL_ACCESOS_PUERTAS FOREIGN KEY(CODIGO_PUERTA) REFERENCES PUERTAS (CODIGO); -- Clave foranea ctrl_accesos CREATE INDEX CTRL_ACCESOS_CODIGO_SOCIO ON CTRL_ACCESOS (CODIGO_SOCIO); ALTER TABLE CTRL_ACCESOS ADD CONSTRAINT CTRL_ACCESOS_SOCIOS FOREIGN KEY(CODIGO_SOCIO) REFERENCES SOCIOS (CODIGO_SOCIO); -- Clave foranea cuotas_esp CREATE INDEX CUOTAS_ESP_CODIGO_ESPACIO ON CUOTAS_ESP (CODIGO_ESPACIO); ALTER TABLE CUOTAS_ESP ADD CONSTRAINT CUOTAS_ESP_ESPACIOS FOREIGN KEY(CODIGO_ESPACIO) REFERENCES ESPACIOS (CODIGO_ESPACIO); -- Clave foranea cuotas_esp CREATE INDEX CUOTAS_ESP_CODIGO_IVA ON CUOTAS_ESP (CODIGO_IVA); ALTER TABLE CUOTAS_ESP ADD CONSTRAINT CUOTAS_ESP_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea entidad CREATE INDEX ENTIDAD_CP_POBLACION ON ENTIDAD (CP,POBLACION); Página 8 CreateTables.sql ALTER TABLE ENTIDAD ADD CONSTRAINT ENTIDAD_CODPOS FOREIGN KEY(CP,POBLACION) REFERENCES CODPOS(CP,POBLACION); -- Clave foranea festivos_esp CREATE INDEX FESTIVOS_ESP_CODIGO_ESPACIO ON FESTIVOS_ESP (CODIGO_ESPACIO); ALTER TABLE FESTIVOS_ESP ADD CONSTRAINT FESTIVOS_ESP_ESPACIOS FOREIGN KEY(CODIGO_ESPACIO) REFERENCES ESPACIOS (CODIGO_ESPACIO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_CODIGO_ESPACIO ON HORARIOS_SERV (CODIGO_ESPACIO); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_ESPACIOS FOREIGN KEY(CODIGO_ESPACIO) REFERENCES ESPACIOS (CODIGO_ESPACIO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_CODIGO_MONITOR ON HORARIOS_SERV (CODIGO_MONITOR); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_MONITORES FOREIGN KEY(CODIGO_MONITOR) REFERENCES MONITORES (CODIGO_MONITOR); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_CODIGO_SERVICIO ON HORARIOS_SERV (CODIGO_SERVICIO); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_SERVICIOS FOREIGN KEY(CODIGO_SERVICIO) REFERENCES SERVICIOS (CODIGO_SERVICIO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_PUERTA_1 ON HORARIOS_SERV (PUERTA_1); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_PUERTAS_1 FOREIGN KEY(PUERTA_1) REFERENCES PUERTAS (CODIGO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_PUERTA_2 ON HORARIOS_SERV (PUERTA_2); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_PUERTAS_2 FOREIGN KEY(PUERTA_2) REFERENCES PUERTAS (CODIGO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_PUERTA_3 ON HORARIOS_SERV (PUERTA_3); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_PUERTAS_3 FOREIGN KEY(PUERTA_3) REFERENCES PUERTAS (CODIGO); -- Clave foranea horarios_serv CREATE INDEX HORARIOS_SERV_PUERTA_4 ON HORARIOS_SERV (PUERTA_4); ALTER TABLE HORARIOS_SERV ADD CONSTRAINT HORARIOS_SERV_PUERTAS_4 FOREIGN KEY(PUERTA_4) REFERENCES PUERTAS (CODIGO); -- Clave foranea imp_serv_edad CREATE INDEX IMP_SERV_EDAD_CODIGO_SERVICIO ON IMP_SERV_EDAD (CODIGO_SERVICIO); ALTER TABLE IMP_SERV_EDAD ADD CONSTRAINT IMP_SERV_EDAD_SERVICIOS FOREIGN KEY(CODIGO_SERVICIO) REFERENCES SERVICIOS (CODIGO_SERVICIO); Página 9 CreateTables.sql -- Clave foranea imp_serv_edad CREATE INDEX IMP_SERV_EDAD_CODIGO_IVA ON IMP_SERV_EDAD (CODIGO_IVA); ALTER TABLE IMP_SERV_EDAD ADD CONSTRAINT IMP_SERV_EDAD_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_CODIGO_SERVICIO_CODIGO_LINEA ON INSCRIPCION_SERV (CODIGO_SERVICIO,CODIGO_LINEA); ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_HORARIOS_SERV FOREIGN KEY(CODIGO_SERVICIO, CODIGO_LINEA) REFERENCES HORARIOS_SERV (CODIGO_SERVICIO, CODIGO_LINEA); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_CODIGO_SERVICIO ON INSCRIPCION_SERV (CODIGO_SERVICIO); ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_SERVICIOS FOREIGN KEY(CODIGO_SERVICIO) REFERENCES SERVICIOS (CODIGO_SERVICIO); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_CODIGO_PERSONA ON INSCRIPCION_SERV (CODIGO_PERSONA); -- ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_PERSONAS FOREIGN KEY(CODIGO_PERSONA) -- REFERENCES PERSONAS (CODIGO_PERSONA); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_CODIGO_SOCIO ON INSCRIPCION_SERV (CODIGO_SOCIO); -- ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_SOCIOS FOREIGN KEY(CODIGO_SOCIO) -- REFERENCES SOCIOS (CODIGO_SOCIO); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_CODIGO_IVA ON INSCRIPCION_SERV (CODIGO_IVA); ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea inscripcion_serv CREATE INDEX INSCRIPCION_SERV_TIPO_CUOTA ON INSCRIPCION_SERV (TIPO_CUOTA); ALTER TABLE INSCRIPCION_SERV ADD CONSTRAINT INSCRIPCION_SERV_TIPOS_CUOTA FOREIGN KEY(TIPO_CUOTA) REFERENCES TIPOS_CUOTA (CODIGO); -- Clave foranea lineas_factura CREATE INDEX LINEAS_FACTURA_CODIGO_ORIGEN ON LINEAS_FACTURA (CODIGO_ORIGEN); ALTER TABLE LINEAS_FACTURA ADD CONSTRAINT LINEAS_FACTURA_INSCRIPCION_SERV FOREIGN KEY(CODIGO_ORIGEN) REFERENCES INSCRIPCION_SERV (CODIGO_INSCRIPCION); -- Clave foranea monitores CREATE INDEX MONITORES_CP_POBLACION ON MONITORES (CP,POBLACION); ALTER TABLE MONITORES ADD CONSTRAINT MONITORES_CODPOS FOREIGN KEY(CP,POBLACION) REFERENCES CODPOS(CP,POBLACION); Página 10 CreateTables.sql -- Clave foranea personas CREATE INDEX PERSONAS_CP_POBLACION ON PERSONAS (CP,POBLACION); ALTER TABLE PERSONAS ADD CONSTRAINT PERSONAS_CODPOS FOREIGN KEY(CP,POBLACION) REFERENCES CODPOS(CP,POBLACION); -- Clave foranea reservas CREATE INDEX RESERVAS_CODIGO_ESPACIO ON RESERVAS (CODIGO_ESPACIO); ALTER TABLE RESERVAS ADD CONSTRAINT RESERVAS_CODIGO_ESPACIO FOREIGN KEY(CODIGO_ESPACIO) REFERENCES ESPACIOS(CODIGO_ESPACIO); -- Clave foranea reservas CREATE INDEX RESERVAS_CODIGO_CUOTA ON RESERVAS (CODIGO_CUOTA); -- ALTER TABLE RESERVAS ADD CONSTRAINT RESERVAS_CUOTAS_ESP FOREIGN KEY(CODIGO_CUOTA) -- REFERENCES CUOTAS_ESP(CODIGO_CUOTA); -- Clave foranea reservas CREATE INDEX RESERVAS_CODIGO_SOCIO ON RESERVAS (CODIGO_SOCIO); -- ALTER TABLE RESERVAS ADD CONSTRAINT RESERVAS_SOCIOS FOREIGN KEY(CODIGO_SOCIO) -- REFERENCES SOCIOS(CODIGO_SOCIO); -- Clave foranea reservas CREATE INDEX RESERVAS_CODIGO_SRV_LIN ON RESERVAS (CODIGO_SRV_LIN); -- ALTER TABLE RESERVAS ADD CONSTRAINT RESERVAS_HORARIOS_SERV FOREIGN KEY(CODIGO_SRV_LIN) -- REFERENCES HORARIOS_SERV(CODIGO_SERVICIO||CODIGO_LINEA); -- Clave foranea servicios CREATE INDEX SERVICIOS_TIPO_CUOTA ON SERVICIOS (TIPO_CUOTA); ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_TIPOS_CUOTA FOREIGN KEY(TIPO_CUOTA) REFERENCES TIPOS_CUOTA (CODIGO); -- Clave foranea servicios CREATE INDEX SERVICIOS_TIPO_SERVICIO ON SERVICIOS (TIPO_SERVICIO); ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_TIPOS_SERVICIO FOREIGN KEY(TIPO_SERVICIO) REFERENCES TIPOS_SERVICIO (CODIGO); -- Clave foranea servicios CREATE INDEX SERVICIOS_CODIGO_IVA ON SERVICIOS (CODIGO_IVA); ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea servicios CREATE INDEX SERVICIOS_NIVEL_DESEADO ON SERVICIOS (NIVEL_DESEADO); ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_NIVELES_DESEADO FOREIGN KEY(NIVEL_DESEADO) REFERENCES NIVELES (CODIGO); -- Clave foranea servicios CREATE INDEX SERVICIOS_NIVEL_MINIMO ON SERVICIOS (NIVEL_MINIMO); Página 11 CreateTables.sql ALTER TABLE SERVICIOS ADD CONSTRAINT SERVICIOS_NIVELES_MINIMO FOREIGN KEY(NIVEL_MINIMO) REFERENCES NIVELES (CODIGO); -- Clave foranea servicios_monitor CREATE INDEX SERVICIOS_MONITOR_CODIGO_MONITOR ON SERVICIOS_MONITOR (CODIGO_MONITOR); ALTER TABLE SERVICIOS_MONITOR ADD CONSTRAINT SERVICIOS_MONITOR_MONITORES FOREIGN KEY(CODIGO_MONITOR) REFERENCES MONITORES(CODIGO_MONITOR); -- Clave foranea servicios_monitor CREATE INDEX SERVICIOS_MONITOR_CODIGO_SRV_LIN ON SERVICIOS_MONITOR (CODIGO_SRV_LIN); -- ALTER TABLE SERVICIOS_MONITOR ADD CONSTRAINT SERVICIOS_MONITOR_HORARIOS_SERV FOREIGN KEY(CODIGO_SRV_LIN) -- REFERENCES HORARIOS_SERV(CODIGO_SERVICIO||CODIGO_LINEA); -- Clave foranea socios CREATE INDEX SOCIOS_CP_POBLACION ON SOCIOS (CP,POBLACION); ALTER TABLE SOCIOS ADD CONSTRAINT SOCIOS_CODPOS FOREIGN KEY(CP,POBLACION) REFERENCES CODPOS(CP,POBLACION); -- Clave foranea ventas_cab CREATE INDEX VENTAS_CAB_CODIGO_USUARIO ON VENTAS_CAB (CODIGO_USUARIO); ALTER TABLE VENTAS_CAB ADD CONSTRAINT VENTAS_CAB_USUARIOS FOREIGN KEY(CODIGO_USUARIO) REFERENCES USUARIOS (USUARIO); -- Clave foranea ventas_cab CREATE INDEX VENTAS_CAB_CODIGO_IVA ON VENTAS_CAB (CODIGO_IVA); ALTER TABLE VENTAS_CAB ADD CONSTRAINT VENTAS_CAB_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea ventas_cab CREATE INDEX VENTAS_CAB_CODIGO_SOCIO ON VENTAS_CAB (CODIGO_SOCIO); -- ALTER TABLE VENTAS_CAB ADD CONSTRAINT VENTAS_CAB_SOCIOS FOREIGN KEY(CODIGO_SOCIO) -- REFERENCES SOCIOS(CODIGO_SOCIO); -- Clave foranea ventas_lin CREATE INDEX VENTAS_LIN_CODIGO_IVA ON VENTAS_LIN (CODIGO_IVA); ALTER TABLE VENTAS_LIN ADD CONSTRAINT VENTAS_LIN_TIPOS_IVA FOREIGN KEY(CODIGO_IVA) REFERENCES TIPOS_IVA (CODIGO); -- Clave foranea ventas_lin CREATE INDEX VENTAS_LIN_CODIGO_RESERVA ON VENTAS_LIN (CODIGO_RESERVA); ALTER TABLE VENTAS_LIN ADD CONSTRAINT VENTAS_LIN_RESERVAS FOREIGN KEY(CODIGO_RESERVA) REFERENCES RESERVAS (CODIGO_RESERVA); -- Clave foranea ventas_lin CREATE INDEX VENTAS_LIN_CODIGO_VENTA ON VENTAS_LIN (CODIGO_VENTA); -- ALTER TABLE VENTAS_LIN ADD CONSTRAINT VENTAS_LIN_VENTAS_CAB FOREIGN KEY(CODIGO_VENTA) -- REFERENCES VENTAS_CAB (CODIGO_VENTA); -- Clave foranea ventas_pie Página 12 CreateTables.sql CREATE INDEX VENTAS_PIE_CODIGO_MEDIO ON VENTAS_PIE (CODIGO_MEDIO); ALTER TABLE VENTAS_PIE ADD CONSTRAINT VENTAS_PIE_MEDIOS FOREIGN KEY(CODIGO_MEDIO) REFERENCES MEDIOS (CODIGO); -- Clave foranea ventas_pie CREATE INDEX VENTAS_PIE_CODIGO_VENTA ON VENTAS_PIE (CODIGO_VENTA); ALTER TABLE VENTAS_PIE ADD CONSTRAINT VENTAS_PIE_VENTAS_CAB FOREIGN KEY(CODIGO_VENTA) REFERENCES VENTAS_CAB (CODIGO_VENTA); -- Defecto ALTER TABLE ESPACIOS ALTER ALTER ALTER ALTER ALTER ALTER ALTER COLUMN COLUMN COLUMN COLUMN COLUMN COLUMN COLUMN LUN MAR MIE JUE VIE SAB DOM SET SET SET SET SET SET SET DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT 0 0 0 0 0 0 0; ALTER TABLE RESERVAS ALTER COLUMN RESERVADO SET DEFAULT 0 ALTER COLUMN COBRADO SET DEFAULT 0 ALTER COLUMN FESTIVO SET DEFAULT 0; ALTER TABLE HORARIOS_SERV ALTER ALTER ALTER ALTER ALTER ALTER ALTER COLUMN COLUMN COLUMN COLUMN COLUMN COLUMN COLUMN LUN MAR MIE JUE VIE SAB DOM Página 13 SET SET SET SET SET SET SET DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT 0 0 0 0 0 0 0;