7. Entidades: identidad, ciclo de vida y continuidad en el tiempo

7.1 Introducción

En modelado de dominio, una entidad es un concepto importante del negocio que se reconoce por su identidad y no solamente por sus atributos. Esto significa que una entidad puede cambiar sus datos, su estado o algunas relaciones, pero sigue siendo la misma cosa dentro del dominio.

Por ejemplo, un Paciente puede cambiar su teléfono, su dirección o su obra social, pero sigue siendo el mismo paciente. Un Turno puede pasar de disponible a reservado, confirmado, atendido o cancelado, pero conserva su identidad durante su ciclo de vida. Esta continuidad es lo que diferencia a una entidad de otros tipos de objetos del dominio.

7.2 Imagen conceptual de una entidad

Entidad de dominio que conserva identidad mientras cambian sus atributos y estados durante el ciclo de vida

7.3 Definición de entidad

Podemos definir una entidad de la siguiente manera:

Una entidad es un objeto del dominio que tiene identidad propia, continuidad en el tiempo y un ciclo de vida durante el cual puede cambiar sin dejar de ser el mismo.

La idea central es la identidad. Dos entidades pueden tener atributos iguales y aun así ser entidades distintas. Por ejemplo, dos pacientes pueden llamarse igual y haber nacido el mismo día, pero siguen siendo dos pacientes diferentes.

7.4 Identidad frente a atributos

Los atributos describen características de una entidad, pero no siempre la definen por completo. Nombre, dirección, teléfono, correo electrónico, fecha, estado o importe pueden cambiar. Si el negocio necesita seguir reconociendo al mismo elemento después de esos cambios, probablemente estamos frente a una entidad.

En un sistema de turnos, un Turno puede cambiar de estado o incluso ser reasignado, según las reglas del negocio. Sin embargo, puede seguir siendo el mismo turno si el dominio necesita conservar su historial. En cambio, si al cambiar la fecha se considera que el turno anterior se cancela y se crea uno nuevo, esa decisión también debe quedar clara en el modelo.

7.5 Identidad natural e identidad artificial

La identidad de una entidad puede estar basada en un dato natural del negocio o en un identificador artificial. Un documento de identidad, número de matrícula, código de cliente o número de factura pueden funcionar como identificadores naturales si el dominio los reconoce como únicos y estables.

También puede usarse un identificador artificial, como un número interno o código generado por el sistema. Este tipo de identificador no siempre tiene significado para el negocio, pero permite distinguir entidades de forma confiable.

Lo importante es no confundir identificador técnico con significado del dominio. Que una tabla tenga un campo id no explica por sí solo qué entidad representa ni qué reglas tiene.

7.6 Ciclo de vida

Una entidad suele tener un ciclo de vida. Nace o se registra, cambia, participa en procesos, puede pasar por estados y eventualmente puede finalizar, cerrarse, cancelarse, archivarse o eliminarse según las reglas del dominio.

Por ejemplo, un Turno puede seguir este ciclo:

Disponible -> Reservado -> Confirmado -> Atendido

También puede tener caminos alternativos:

Reservado -> Cancelado
Confirmado -> Ausente

Estos cambios de estado son parte del comportamiento del dominio y conviene modelarlos cuando afectan reglas importantes.

7.7 Continuidad en el tiempo

La continuidad en el tiempo significa que una entidad puede ser reconocida como la misma a lo largo de distintas situaciones. Un Paciente registrado hace dos años sigue siendo el mismo aunque haya cambiado su domicilio. Un Pedido sigue siendo el mismo pedido aunque cambie de pendiente a pagado o enviado.

Esta continuidad permite conservar historial, aplicar reglas acumuladas y relacionar eventos. Por ejemplo, si un paciente tuvo varias inasistencias, el sistema necesita reconocerlo como la misma entidad a través del tiempo para aplicar una política de bloqueo o advertencia.

7.8 Ejemplo: Paciente

Paciente es un buen ejemplo de entidad. Tiene identidad propia, datos personales, relaciones con turnos, historial de atención y posiblemente reglas asociadas. Aunque cambie su teléfono o correo electrónico, el paciente no se convierte en otro.

Al modelar Paciente, debemos preguntar qué lo identifica en el dominio. Puede ser un número de documento, una historia clínica, un identificador interno o una combinación de datos. También debemos preguntar qué cambios son permitidos y qué historial debe conservarse.

7.9 Ejemplo: Turno

Turno también puede ser una entidad, pero su identidad depende de cómo el negocio lo entiende. En algunos dominios, un turno es una asignación concreta de fecha, hora, profesional y paciente. Si se cambia la fecha, se considera una reprogramación del mismo turno. En otros dominios, cambiar la fecha puede significar cancelar un turno y crear otro.

No hay una respuesta universal. El modelo de dominio debe reflejar la política real del negocio. Por eso, ante una entidad candidata, conviene preguntar qué cambios puede sufrir sin perder su identidad.

7.10 Entidad no significa tabla

Una entidad de dominio no es automáticamente una tabla de base de datos. Puede terminar persistida en una tabla, en varias tablas, en documentos o incluso no persistirse directamente. El concepto de entidad pertenece al análisis del dominio; la tabla pertenece a la solución técnica.

Confundir entidad con tabla lleva a modelos pobres. Una tabla puede existir por razones técnicas, mientras que una entidad existe porque el negocio necesita distinguirla, seguirla y aplicar reglas sobre ella.

La pregunta correcta no es "¿esto tendrá una tabla?", sino "¿el negocio necesita reconocer esto como algo con identidad propia?".

7.11 Entidad no significa clase de programación

De manera similar, una entidad de dominio no es necesariamente una clase de programación. En diseño orientado a objetos puede existir una clase que represente una entidad, pero eso ya pertenece a una etapa posterior. Durante el análisis, lo importante es comprender el significado del concepto.

Una clase puede contener detalles técnicos, métodos auxiliares, anotaciones, herencia o mecanismos de persistencia. Una entidad de dominio debe describirse por su identidad, reglas, relaciones y ciclo de vida dentro del negocio.

7.12 Cómo identificar entidades candidatas

Algunas preguntas ayudan a decidir si un concepto es una entidad:

  • ¿El negocio necesita distinguir una instancia de otra aunque tengan datos parecidos?
  • ¿El concepto mantiene continuidad a lo largo del tiempo?
  • ¿Puede cambiar de estado o atributos sin dejar de ser el mismo?
  • ¿Tiene reglas propias o participa en reglas importantes?
  • ¿Necesita historial, seguimiento o auditoría?
  • ¿Se relaciona con otros conceptos del dominio?
  • ¿Los expertos del negocio lo nombran como algo importante?

7.13 Igualdad entre entidades

Dos entidades no se consideran iguales solo porque tengan los mismos atributos. Se consideran iguales si representan la misma identidad del dominio. Dos pacientes con el mismo nombre no son el mismo paciente. Dos turnos en la misma fecha y hora podrían ser distintos si pertenecen a profesionales diferentes o si el dominio les asigna identidades separadas.

La igualdad de entidades es una decisión importante porque afecta reglas, búsquedas, duplicados, integración con otros sistemas y mantenimiento de datos.

7.14 Cambios permitidos y cambios que rompen identidad

No todos los cambios son iguales. Algunos cambios modifican atributos sin alterar la identidad. Otros son tan importantes que el negocio los interpreta como la creación de una nueva entidad.

Por ejemplo, cambiar el teléfono de un paciente no crea otro paciente. Pero si una factura emitida tiene un número legal y se anula, quizá no se modifica la misma factura, sino que se registra una anulación y se emite otra. En un turno, cambiar horario puede ser una reprogramación o una cancelación más una nueva reserva, según la política del dominio.

Estas decisiones deben discutirse con expertos, porque no dependen solo de preferencias técnicas.

7.15 Entidades y reglas de negocio

Las entidades suelen concentrar reglas importantes. Un Pedido puede saber cuándo puede cancelarse. Una Cuenta puede saber si tiene saldo suficiente. Un Turno puede saber si puede confirmarse, cancelarse o marcarse como atendido. Un Paciente puede tener reglas asociadas a inasistencias o restricciones.

Esto no significa que toda regla deba estar dentro de una entidad en el diseño final, pero durante el análisis conviene identificar qué reglas pertenecen naturalmente a cada concepto y cuáles involucran varios conceptos a la vez.

7.16 Tabla de ejemplos

La siguiente tabla muestra posibles entidades y el motivo por el cual podrían ser consideradas como tales:

Entidad candidata Identidad posible Razón de continuidad
Paciente Historia clínica o identificador interno. Conserva historial aunque cambien datos personales.
Turno Número de turno o combinación definida por el negocio. Pasa por estados como reservado, cancelado o atendido.
Pedido Número de pedido. Puede cambiar de pendiente a pagado, enviado o cancelado.
Factura Número legal de factura. Debe conservarse aunque sea anulada.

7.17 Errores frecuentes

Al modelar entidades, suelen aparecer estos errores:

  • Confundir entidades de dominio con tablas de base de datos.
  • Crear entidades para todo sustantivo encontrado en entrevistas o documentos.
  • Definir identidad usando atributos que pueden cambiar sin analizar consecuencias.
  • No preguntar qué cambios conserva la identidad y cuáles crean una nueva entidad.
  • Ignorar el ciclo de vida y modelar entidades como simples bolsas de datos.
  • No validar con expertos si el concepto realmente tiene identidad para el negocio.
  • Usar identificadores técnicos como reemplazo de una definición de dominio.

7.18 Qué debes recordar de este tema

  • Una entidad se reconoce por su identidad, no solo por sus atributos.
  • Puede cambiar datos, relaciones o estados y seguir siendo la misma entidad.
  • La continuidad en el tiempo permite historial, seguimiento y aplicación de reglas acumuladas.
  • La identidad puede ser natural o artificial, pero debe ser coherente con el dominio.
  • Una entidad de dominio no es necesariamente una tabla ni una clase de programación.
  • El ciclo de vida ayuda a entender estados, transiciones y reglas importantes.
  • La decisión de qué es entidad debe validarse con expertos del negocio.

7.19 Conclusión

Las entidades son piezas centrales del modelo de dominio porque representan conceptos con identidad y continuidad. Comprenderlas correctamente ayuda a evitar modelos basados solo en datos y permite expresar mejor estados, reglas, historial y relaciones del negocio.

En este tema vimos qué es una entidad, cómo se diferencia de sus atributos, cómo analizar su ciclo de vida y qué preguntas ayudan a identificarla. En el próximo tema estudiaremos los objetos de valor, que se reconocen por su significado y por sus atributos, no por una identidad propia.