Las claves primarias o Primary Keys pueden ser simples (o sea, una sola columna actúa como Primary Key) o compuestas (o sea, dos o más columnas actúan como Primary Key)

¿Cuál es la mejor alternativa, cuál deberíamos emplear?

Como puedes leer en este artículo:

https://firebird21.wordpress.com/2013/03/15/entendiendo-a-las-primary-keys/

una Primary Key no puede tener valores repetidos ni valores nulos. Y eso, hay varias formas de conseguirlo.

Lo más conveniente siempre es que la columna que actúa como Primary Key (o una de las columnas, si es compuesta) sea autoincremental porque eso nos asegura que no tendrá valores repetidos ni nulos porque el mismo Firebird se encarga de asignarle valores a esa columna.

Pero ¿una columna o varias columnas?

Si planeas usar replicación entonces lo más conveniente es que la Primary Key esté compuesta por dos (o más) columnas. Si crees que nunca usarás replicación entonces puedes usar una sola columna autoincremental para ella.

La replicación es enviar los datos de una Base de Datos a otra Base de Datos. Por ejemplo tienes sucursales en Buenos Aires, Montevideo y Bogotá, cada una de ellas con su respectiva Base de Datos y quieres consolidar las ventas de esas tres sucursales para tenerlas en una sola Base de Datos. Entonces, debes poder distinguir en cual sucursal se realizó cada venta y los identificadores no te servirán porque pueden estar repetidos.

En Buenos Aires tenemos ventas con identificadores 1, 2, 3, 4, etc.

En Montevideo tenemos ventas con identificadores 1, 2, 3, 4, etc.

En Bogotá tenemos ventas con identificadores 1, 2, 3, 4, etc.

¿Cómo distinguimos entonces a cuál sucursal corresponde cada venta? Con otra columna, llamada por ejemplo CódigoSucursal.

Buenos Aires tiene el código 1

Montevideo tiene el código 2

Bogotá tiene el código 3

Entonces las ventas de Buenos Aires tendrán como Primary Key:

11, 12, 13, 14, etc.

Las ventas de Montevideo tendrán como Primary Key:

21, 22, 23, 24, etc.

Las ventas de Bogotá tendrán como Primary Key:

31, 32, 33, 34, etc.

Y nunca habrá confusión posible.

Conclusión:

  • Si no usas ni planeas usar replicación entonces la Primary Key puede estar compuesta por una sola columna autoincremental
  • Si usas o podrías llegar a usar replicación, entonces la Primary Key debería estar compuesta por dos columnas: una que identifique a la Sucursal y otra que sea autoincremental

Artículos relacionados:

Entendiendo a las Primary Keys

Uso de la Primary Key

El índice del blog Firebird21

 

https://firebird21.wordpress.com/2013/03/15/entendiendo-a-las-primary-keys/