domingo, 2 de diciembre de 2012

Sentencias para la creación de la base de datos en MySQL

Con esta instrucción se crea la base de datos llamada Caja

CREATE DATABASE caja;

Luego se procede a crear las tablas con la sentencia CREATE. Primero con la sentencia DROP elimina la tabla si existe.
En el ejemplo se crea una tabla llamada 'afiliado'. Esta tabla contiene 12 campos los cuales son de diferentes tipos (int son datos enteros, varchar son tipos de datos caracter, date es un tipo de datos de fechas, float admite datos decimales o flotantes). También se puede apreciar que esta tabla tiene relación con otra tabla llamada Departamento a través de la clave foránea 'idDepartamento'. En la tabla afiliado se almacena los datos de un socio de la caja de ahorros.

DROP TABLE IF EXISTS afiliado;
CREATE TABLE `afiliado` (
  `cedula` int(11) NOT NULL,
  `nombres` varchar(30) DEFAULT NULL,
  `apellidos` varchar(30) DEFAULT NULL,
  `fechaNac` date DEFAULT NULL,
  `direccion` varchar(90) DEFAULT NULL,
  `telefonoCasa` varchar(12) DEFAULT NULL,
  `telefonoCelular` varchar(12) DEFAULT NULL,
  `correoElectronico` varchar(40) DEFAULT NULL,
  `aporteInicial` float DEFAULT NULL,
  `fechaIngreso` date DEFAULT NULL,
  `cargo` varchar(35) DEFAULT NULL,
  `idDepartamento` int(11) DEFAULT NULL,
  PRIMARY KEY (`cedula`),
  KEY `idDepartamento` (`idDepartamento`),
  CONSTRAINT `idDepartamento` FOREIGN KEY (`idDepartamento`) REFERENCES `departamento` (`idDepartamento`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


A continuación se muestra la creación de otras tablas.

La tabla banco, se encarga de almacenar los datos relacionados con los bancos, tales como id, el nombre del banco, el numero de cuenta que debe ser único si es del mismo banco, el nombre de la persona que maneja la cuenta, su rif y el tipo de cuenta que puede ser Ahorro o Corriente

DROP TABLE IF EXISTS banco;
CREATE TABLE `banco` (
  `idbanco` int(11) NOT NULL,
  `nombrebanco` varchar(40) DEFAULT NULL,
  `numerocuenta` int(11) NOT NULL,
  `nombrecliente` varchar(45) DEFAULT NULL,
  `rif` varchar(13) DEFAULT NULL,
  `tipodecuenta` varchar(15) DEFAULT NULL,
  PRIMARY KEY (`idbanco`),
  UNIQUE KEY `numerocuenta_UNIQUE` (`numerocuenta`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


La tabla Cheque almacena los datos concernientes a los cheque que se generan a la hora de otorgar un préstamo o un retiro.

DROP TABLE IF EXISTS cheque;
CREATE TABLE `cheque` (
  `idcheque` int(11) NOT NULL,
  `fechaemision` date DEFAULT NULL,
  `cantidad` float DEFAULT NULL,
  `banco_idbanco` int(11) NOT NULL,
  `solicitudprestamo_idprestamo` int(11) NOT NULL,
  PRIMARY KEY (`idcheque`,`solicitudprestamo_idprestamo`),
  KEY `fk_cheque_banco1` (`banco_idbanco`),
  KEY `fk_cheque_solicitudprestamo1` (`solicitudprestamo_idprestamo`),
  CONSTRAINT `fk_cheque_banco1` FOREIGN KEY (`banco_idbanco`) REFERENCES `banco` (`idbanco`) ON DELETE NO ACTION ON UPDATE NO ACTION,
  CONSTRAINT `fk_cheque_solicitudprestamo1` FOREIGN KEY (`solicitudprestamo_idprestamo`) REFERENCES `solicitudprestamo` (`idprestamo`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


La tabla departamento contiene una lista con su respectivo Id de los distintos departamentos de la Caja de Ahorro.

DROP TABLE IF EXISTS departamento;
CREATE TABLE `departamento` (
  `idDepartamento` int(11) NOT NULL,
  `descripcion` varchar(25) DEFAULT NULL,
  PRIMARY KEY (`idDepartamento`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 


La tabla familiares almacena los datos de los familiares de los socios de la Caja de Ahorros. Lo maximo que se puede cargar son 8 familiares por socio.



DROP TABLE IF EXISTS familiares;
CREATE TABLE `familiares` (
  `idFamiliares` int(11) NOT NULL,
  `nombres` varchar(30) DEFAULT NULL,
  `apellidos` varchar(30) DEFAULT NULL,
  `parentesco` varchar(15) DEFAULT NULL,
  `fechaNacimiento` date DEFAULT NULL,
  `afiliado_cedula` int(11) NOT NULL,
  PRIMARY KEY (`idFamiliares`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


La tabla haberes almacena las aportaciones que realizan los socios, así como también los descuentos que se deben realizar a la hora de otorgar un préstamo o un retiro.

DROP TABLE IF EXISTS haberes;
CREATE TABLE `haberes` (
  `idHaberes` int(11) NOT NULL,
  `movimiento` varchar(10) DEFAULT NULL,
  `fecha` date DEFAULT NULL,
  `monto` float DEFAULT NULL,
  `totalHaberes` float DEFAULT NULL,
  `disponibilidad` float DEFAULT NULL,
  `afiliado_cedula` int(11) NOT NULL,
  PRIMARY KEY (`idHaberes`),
  KEY `fk_haberes_afiliado1` (`afiliado_cedula`),
  CONSTRAINT `fk_haberes_afiliado1` FOREIGN KEY (`afiliado_cedula`) REFERENCES `afiliado` (`cedula`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Esta tabla la utilizamos para almacenar los prestamos que son procesados, estos se pueden aprobar o no.

DROP TABLE IF EXISTS prestamospendiente;
CREATE TABLE `prestamospendiente` (
  `idprestamosaprobados` int(11) NOT NULL,
  `fecha` date DEFAULT NULL,
  `status` varchar(20) DEFAULT NULL,
  `solicitudprestamo_idprestamo` int(11) NOT NULL,
  PRIMARY KEY (`idprestamosaprobados`,`solicitudprestamo_idprestamo`),
  KEY `fk_prestamospendiente_solicitudprestamo1` (`solicitudprestamo_idprestamo`),
  CONSTRAINT `fk_prestamospendiente_solicitudprestamo1` FOREIGN KEY (`solicitudprestamo_idprestamo`) REFERENCES `solicitudprestamo` (`idprestamo`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Esta tabla almacena las peticiones de retiro de los afiliados.

DROP TABLE IF EXISTS retiro;
CREATE TABLE `retiro` (
  `idRetiro` int(11) NOT NULL,
  `fechaRetiro` date DEFAULT NULL,
  `monto` float DEFAULT NULL,
  `tipo` varchar(8) DEFAULT NULL,
  `statusRetiro` varchar(25) DEFAULT NULL,
  `afiliado_cedula` int(11) NOT NULL,
  PRIMARY KEY (`idRetiro`),
  KEY `fk_retiro_afiliado1` (`afiliado_cedula`),
  CONSTRAINT `fk_retiro_afiliado1` FOREIGN KEY (`afiliado_cedula`) REFERENCES `afiliado` (`cedula`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


Aquí en esta tabla guardamos las solicitudes de prestamos que realizan los afiliados.

DROP TABLE IF EXISTS solicitudprestamo;
CREATE TABLE `solicitudprestamo` (
  `idprestamo` int(11) NOT NULL,
  `montototal` float DEFAULT NULL,
  `fechasolicitud` date DEFAULT NULL,
  `interesesanticipado` float DEFAULT NULL,
  `subtotal` float DEFAULT NULL,
  `montocuotas` float DEFAULT NULL,
  `numerocuotas` int(11) DEFAULT NULL,
  `tipodeprestamo` varchar(15) DEFAULT NULL,
  `afiliado_cedula` int(11) NOT NULL,
  PRIMARY KEY (`idprestamo`),
  KEY `fk_solicitudprestamo_afiliado1` (`afiliado_cedula`),
  CONSTRAINT `fk_solicitudprestamo_afiliado1` FOREIGN KEY (`afiliado_cedula`) REFERENCES `afiliado` (`cedula`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


La tabla usuario almacena los datos del afiliado que le permitirán conectarse a la aplicación.

DROP TABLE IF EXISTS usuario;
CREATE TABLE `usuario` (
  `idUsuario` int(11) NOT NULL AUTO_INCREMENT,
  `usuario` varchar(25) NOT NULL,
  `clave` varchar(20) NOT NULL,
  `perfil` varchar(25) NOT NULL,
  `preguntaSecreta` varchar(60) NOT NULL,
  `respuestaSecreta` varchar(60) NOT NULL,
  `afiliado_cedula` int(11) NOT NULL,
  `estatus` varchar(20) NOT NULL,
  PRIMARY KEY (`idUsuario`)
) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=latin1;



No hay comentarios:

Publicar un comentario