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.
Podemos definir una entidad de la siguiente manera:
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.
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.
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.
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:
También puede tener caminos alternativos:
Estos cambios de estado son parte del comportamiento del dominio y conviene modelarlos cuando afectan reglas importantes.
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.
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.
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.
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.
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.
Algunas preguntas ayudan a decidir si un concepto es una entidad:
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.
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.
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.
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. |
Al modelar entidades, suelen aparecer estos errores:
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.