Este artículo analiza un problema frecuente en el diseño de bases de datos relacionales: la elección de la clave primaria. En su experiencia optimizando consultas de clientes, el autor identifica dos causas principales de bajo rendimiento: expectativas poco realistas respecto a la infraestructura y, sobre todo, un mal diseño de claves primarias que fragmenta el esquema en compartimentos aislados y desaprovecha el poder basado en conjuntos del lenguaje SQL.
El texto parte de una crítica al uso indiscriminado de claves subrogadas (surrogate keys) generadas de forma automática, proponiendo en su lugar lo que denomina "claves primarias estructuradas". La idea central es construir claves primarias compuestas que reflejen las relaciones naturales entre tablas —por ejemplo, anteponer el identificador del cliente al de la orden y al de la línea de pedido— para que las joins no necesiten recorrer columnas adicionales.
Entre las ventajas que se detallan están la coherencia cíclica entre tablas, la eficiencia en espacio (al sustituir identificadores grandes por combinaciones más cortas en tablas hijas) y la posibilidad de mantener una secuencia numérica por cada entidad padre, lo que simplifica la generación de claves en sistemas distribuidos. El autor también aborda objeciones habituales, como la supuesta desnormalización que implicaría este enfoque, y discute el impacto sobre el rendimiento y el mantenimiento del esquema.
El artículo incluye ejemplos de código SQL aplicables a un esquema de tienda online con tablas de clientes, pedidos y líneas de pedido, y compara consultas reales —como buscar la última vez que un cliente compró un producto concreto— para demostrar cómo una clave mal elegida obliga a joins innecesarias. Se trata, en definitiva, de una guía técnica pensada para desarrolladores y administradores de bases de datos que busquen esquemas más coherentes y consultas más eficientes.
