Este sería nuestro modelo físico de la base de datos completa, aquí se observa todas las tablas creadas con todos sus campos y sus relaciones correspondientes entre ellas.
MySQL Modelado de los datos
martes, 4 de diciembre de 2012
Crear la tabla odontogramas
CREATE TABLE `odontogramas` (
`id_odontograma` int(11) NOT NULL AUTO_INCREMENT,
`historia` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`diente` int(11) NOT NULL,
`vestibular` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`distal` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`oclusal` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`mesial` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`lingual` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_odontograma`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
`id_odontograma` int(11) NOT NULL AUTO_INCREMENT,
`historia` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`diente` int(11) NOT NULL,
`vestibular` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`distal` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`oclusal` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`mesial` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`lingual` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_odontograma`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
Esta tabla va a funcionar para el resguardo de los datos de la consulta del paciente, aquí el odontólogo es el encargado de suministrar la información de acuerdo al caso del paciente, se suministra la descripción del diente, cada diente tendrá una numeración y los campos vestibular, distal, oclusal mesial y lingual son las partes en que se divide cada diente.
lunes, 3 de diciembre de 2012
Crear la tabla asistencias
CREATE TABLE `asistencias` (
`id_asistencia` int(11) NOT NULL AUTO_INCREMENT,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`hora` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`estado_e_s` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_asistencia`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
`id_asistencia` int(11) NOT NULL AUTO_INCREMENT,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`hora` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`estado_e_s` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_asistencia`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
Esta tabla cumplirá con la función de almacenar los datos correspondientes en relación a la asistencia del personal que labora en el consultorio, tenemos un campo estado_e_s muy parecido al campo estado de la tabla consultas lo diferente en este caso es que los valores que se le asignará a este campo será 'Entrada' y 'Salida'.
Crear la tabla consultas
CREATE TABLE `consultas` (
`id_consulta` int(11) NOT NULL AUTO_INCREMENT,
`historia` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`estado` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_consulta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
`id_consulta` int(11) NOT NULL AUTO_INCREMENT,
`historia` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
`cedula` int(11) NOT NULL,
`fecha` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
`estado` varchar(15) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_consulta`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0 ;
Tenemos la tabla consultas dicha tabla nos servirá para el resguardo de las consultas de los pacientes, id_consulta es la clave primaria y las foráneas son historia que corresponde al número de historia que tiene asignado el paciente, el otro campo es cedula que corresponde al odontologo que va atender al paciente. Agregamos un campo llamado estado para asignarle dos valores posibles que son 'Atendido' y 'No atendido'.
Crear la tabla para los usuarios
CREATE TABLE `usuarios` (
`cedula` int(11) NOT NULL,
`usuario` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`contrasenia` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`nivel` int(11) NOT NULL,
PRIMARY KEY (`usuario`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
`cedula` int(11) NOT NULL,
`usuario` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`contrasenia` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`nivel` int(11) NOT NULL,
PRIMARY KEY (`usuario`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
Ya familiarizado con las cláusulas SQL vamos al grano con respecto a los campos que agregamos a esta tabla, la finalidad de esta tabla es para guardar los datos de los usuarios que existiran y tendrán acceso al sistema, el campo cedula es una clave foránea ya que esta tabla tendrá relación con la tabla odontologos. El campo usuario será la clave primaria, aquí hay un detalle con el campo contrasenia y es con respecto al nombre que le dimos, omitimos la letra 'ñ' para evitar conflictos con MySQL, no se recomienda utilizar la letra 'ñ' en un campo de la tabla.
Crear tabla para los datos del personal
CREATE TABLE `odontologos` (
`cedula` int(11) NOT NULL,
`nombres` varchar(150) COLLATE utf8_spanish2_ci NOT NULL,
`direccion` varchar(200) COLLATE utf8_spanish2_ci NOT NULL,
`telf_movil` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`telf_fijo` varchar(20) COLLATE utf8_spanish2_ci DEFAULT NULL,
`correo` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
`cargo` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`turno` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`cedula`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
`cedula` int(11) NOT NULL,
`nombres` varchar(150) COLLATE utf8_spanish2_ci NOT NULL,
`direccion` varchar(200) COLLATE utf8_spanish2_ci NOT NULL,
`telf_movil` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`telf_fijo` varchar(20) COLLATE utf8_spanish2_ci DEFAULT NULL,
`correo` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
`cargo` varchar(20) COLLATE utf8_spanish2_ci NOT NULL,
`turno` varchar(10) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`cedula`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci;
Esta tabla la he llamado odontologos ya que ella almacenara todos los datos correspondientes al personal que labora en el consultorio odontológico, como verán no hay tipos de datos que no se haya descripto en las anteriores tablas, tenemos un tipo entero (int) y los demás son de tipo varchar, la clave primaria será cedula se crea un campo cargo porque en el laboratorio trabajan tanto odontologos como asistentes y este dato nos servirá de mucho en la hora de la programación en cuanto a la restricción de los usuarios que ingresarán en el sistema.
El campo turno por el motivo de que no es el mismo personal que labora en la mañana y en la tarde.
Crear las tablas para los nombres de estados, ciudades y municipios
CREATE TABLE `estados` (
`id_estado` int(11) NOT NULL AUTO_INCREMENT,
`estado` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_estado`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
CREATE TABLE `ciudades` (
`id_ciudad` int(11) NOT NULL AUTO_INCREMENT,
`ciudad` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
`id_estado` int(11) NOT NULL,
PRIMARY KEY (`id_ciudad`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
CREATE TABLE `municipios` (
`id_municipio` int(11) NOT NULL AUTO_INCREMENT,
`municipio` varchar(80) COLLATE utf8_spanish2_ci NOT NULL,
`id_ciudad` int(11) NOT NULL,
PRIMARY KEY (`id_municipio`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
`id_estado` int(11) NOT NULL AUTO_INCREMENT,
`estado` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
PRIMARY KEY (`id_estado`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
CREATE TABLE `ciudades` (
`id_ciudad` int(11) NOT NULL AUTO_INCREMENT,
`ciudad` varchar(50) COLLATE utf8_spanish2_ci NOT NULL,
`id_estado` int(11) NOT NULL,
PRIMARY KEY (`id_ciudad`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
CREATE TABLE `municipios` (
`id_municipio` int(11) NOT NULL AUTO_INCREMENT,
`municipio` varchar(80) COLLATE utf8_spanish2_ci NOT NULL,
`id_ciudad` int(11) NOT NULL,
PRIMARY KEY (`id_municipio`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_spanish2_ci AUTO_INCREMENT=0;
En la tabla anterior que llamamos pacientes, tenemos tres datos que en la tabla los identificamos como claves foráneas, dichas claves vienen de estas tres tablas que acabamos de crear.
La primera tabla le asignamos el nombre de estados la segunda ciudades y la tercera municipios, aquí ya nos empezamos a meter con la relación que tiene que existir entre las tablas y sus datos.
Un estado tiene muchas ciudades y una ciudad tiene un municipio.
`id_estado` int(11) NOT NULL AUTO_INCREMENT
Agregamos una columna de nombre id_estado de tipo int (valor entero) auto incrementable, esto quiere decir que automaticamente se le va sumando el valor de 1 con respecto al último valor que se tiene almacenado.
`estado` varchar(50) COLLATE utf8_spanish2_ci NOT NULL
Otra columna de nombre estado a la cual se le va asignar el nombre del estado de tipo varchar.
PRIMARY KEY (`id_estado`)
AUTO_INCREMENT=0
Las asignación de la clave primaria al campo id_estado y el valor que se va a auto incrementar se inicia en cero.
Con respecto a las tablas de ciudades y municipios sólo varía que en la tabla de ciudades se le agrega la clave foránea id_estado y en la tabla de municipios la clave foránea id_ciudad.
Les dejo las tablas con todos sus datos correspondientes a los estados, ciudades y municipios de Venezuela en el siguiente link.
Suscribirse a:
Entradas (Atom)