sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Qué columna para la clave externa:id o cualquier otra columna y por qué?

Una clave externa tiene que apuntar a una clave principal o restricción única. Es normal hacer referencia a la clave principal, porque normalmente desea hacer referencia a una fila individual en otra tabla, y la clave principal es el identificador de una fila de la tabla.

Desde un punto de vista técnico, no importa si una clave externa hace referencia a la clave principal o a otra restricción única, porque en PostgreSQL ambas se implementan de la misma manera, utilizando un índice único.

En cuanto a sus ejemplos concretos, no hay nada de malo en tener el size único columna de vehicle_size ser el objetivo de una clave externa, aunque plantea la pregunta de por qué no hizo size la clave principal y omitir el id columna en total. No es necesario que cada tabla tenga un id columna que es la clave primaria numérica generada automáticamente, excepto que puede haber ORM y otro software que espere eso.