¿Cuál es la diferencia entre una surrogate key y una natural key?
Opciones
- Una surrogate key es artificial (id automático, UUID); una natural key es un dato real (Opción correcta)
- Son el mismo tipo de clave, con dos nombres distintos
- Las surrogate keys nunca pueden ser únicas, y las naturales siempre lo son
- Las natural keys siempre son números y las surrogate keys son texto
Respuesta
Una surrogate key es un identificador artificial sin significado de negocio (id autoincremental, UUID); una natural key es un dato del mundo real que identifica una fila (email, número de pasaporte)
Por qué
Las natural keys vienen de los propios datos, pero pueden cambiar (la gente cambia de email) o reutilizarse, y pueden ser largas.
Las surrogate keys (id BIGINT GENERATED ... AS IDENTITY, UUID) las genera la base de datos, son pequeñas, estables y nunca cambian, lo que simplifica las foreign keys.
Práctica común: surrogate primary key, más una restricción UNIQUE en la natural key.
Recuerda
Surrogate = id artificial y estable. Natural = identificador del mundo real.