Patricia Luengo Carretero

Data Scientist & Docente & UX/UI Designer

Proyecto de un Centro Médico del Curso de Certificación de SQL SERVER de IBM SkillsBuild, DataHack y Fundae

1. Diseñando la base de datos

En la base de datos tenemos una serie de tablas y tipos de datos que nos van a facilitar la gestión de un centro médico. Los detalles se muestran a continuación:

1.1. Tipos de datos definidos por el usuario:

  • historia: Tipo de dato int para identificar historias.
  • medico: Tipo de dato int para identificar médicos.
  • observacion: Tipo de dato varchar(1000) para observaciones.
  • paciente: Tipo de dato int para identificar pacientes.
  • turno: Tipo de dato int para identificar turnos.

1.2. Tablas:

  • Concepto: Contiene idconcepto (identificador) y descripcion (de tipo varchar(100)).
  • Especialidad: Define especialidades médicas, con un identificador idEspecialidad y su descripción.
  • Historia: Almacena las historias médicas, con un idHistoria, la fechaHistoria, y una observacion.
  • HistoriaPaciente: Relaciona las historias médicas con pacientes y médicos a través de las claves idHistoriaidPaciente, y idMedico.
  • Medico: Información de los médicos, con idMedicoNombre, y Apellido.
  • MedicoEspecialidad: Relaciona médicos con especialidades, con idMedicoidEspecialidad, y Descripcion.
  • Paciente: Contiene información de los pacientes, como idPacientenombreapellidofNacimientodomicilio, etc.
  • Pago: Registra pagos realizados, con detalles como idpagoconceptofechamontoestado, y observacion.
  • PagoPaciente: Relaciona pagos con pacientes y turnos, con claves como idpagoidpaciente, y idturno.
  • Pais: Información sobre países, con un identificador idPais y el nombre del país.
  • Turno: Almacena los turnos, con información sobre idTurnofechaTurnoestado, y observacion.
  • TurnoEstado: Define los posibles estados de un turno, con idEstado y Descripcion.
  • TurnoPaciente: Relaciona turnos con pacientes y médicos, utilizando idTurnoidPaciente, y idMedico.

1.3. Tipos y restricciones:

1. Tabla: Concepto

  • idconceptotinyint (NOT NULL) → Clave primaria
  • descripcionvarchar(100) (NULL)

2. Tabla: Especialidad

  • idEspecialidadint (NOT NULL) → Clave primaria
  • Especialidadvarchar(30) (NULL)

3. Tabla: Historia

  • idHistoriadbo.historia (NOT NULL) → Clave primaria
  • fechaHistoriadatetime (NULL)
  • observaciondbo.observacion (NULL)

4. Tabla: HistoriaPaciente

  • idHistoriadbo.historia (NOT NULL) → Clave foránea referencia a Historia
  • idPacientedbo.paciente (NOT NULL) → Clave foránea referencia a Paciente
  • idMedicodbo.medico (NOT NULL) → Clave foránea referencia a Medico
  • Claves primarias: (idHistoriaidPacienteidMedico).

5. Tabla: Medico

  • idMedicodbo.medico (NOT NULL) → Clave primaria
  • Nombrevarchar(50) (NOT NULL)
  • Apellidovarchar(50) (NOT NULL)

6. Tabla: MedicoEspecialidad

  • idMedicodbo.medico (NOT NULL) → Clave foránea referencia a Medico
  • idEspecialidadint (NOT NULL) → Clave foránea referencia a Especialidad
  • Descripcionvarchar(50) (NOT NULL)
  • Claves primarias: (idMedicoidEspecialidadDescripcion).

7. Tabla: Paciente

  • idPacientedbo.paciente (NOT NULL) → Clave primaria
  • nombrevarchar(50) (NOT NULL)
  • apellidovarchar(50) (NOT NULL)
  • fNacimientodate (NOT NULL)
  • domiciliovarchar(50) (NOT NULL)
  • idPaischar(3) (NULL) → Clave foránea referencia a Pais
  • telefonovarchar(20) (NULL)
  • emailvarchar(30) (NOT NULL)
  • observaciondbo.observacion (NULL)

8. Tabla: Pago

  • idpagoint (NOT NULL) → Clave primaria
  • conceptotinyint (NOT NULL) → Clave foránea referencia a Concepto
  • fechadatetime (NOT NULL)
  • montomoney (NOT NULL)
  • estadotinyint (NULL)
  • observaciondbo.observacion (NULL)

9. Tabla: PagoPaciente

  • idpagoint (NOT NULL) → Clave foránea referencia a Pago
  • idpacientedbo.paciente (NOT NULL) → Clave foránea referencia a Paciente
  • idturnoint (NOT NULL) → Clave foránea referencia a Turno
  • Claves primarias: (idpagoidpacienteidturno).

10. Tabla: Pais

  • idPaischar(3) (NOT NULL) → Clave primaria
  • Paisvarchar(30) (NULL)

11. Tabla: Turno

  • idTurnodbo.turno (NOT NULL) → Clave primaria
  • fechaTurnodatetime (NULL)
  • estadosmallint (NULL)
  • observaciondbo.observacion (NULL)

12. Tabla: TurnoEstado

  • idEstadosmallint (NOT NULL) → Clave primaria
  • Descripcionvarchar(50) (NULL)

13. Tabla: TurnoPaciente

  • idTurnoint (NOT NULL) → Clave foránea referencia a Turno
  • idPacientedbo.paciente (NOT NULL) → Clave foránea referencia a Paciente
  • idMedicodbo.medico (NOT NULL) → Clave foránea referencia a Medico
  • Claves primarias: (idTurnoidPacienteidMedico)
  • Claves primarias: (idTurnoidPacienteidMedico)

1.4. Diagrama de la base de datos Centro Medico