Re: Crear 2 llaves primarias en una tabla

Santiago Bosio <[email protected]> Thu, 30 Dec 2010 14:04:03 -0300
Newsgroups gmane.comp.openoffice.general.spanish
Message-ID <[email protected]>
El 30/12/10 13:48, Alfredo Lomán escribió:
> Amigos:
>
> Feliz año para todos.
>
> Con los cambios habidos no estoy seguro de estarme dirigiendo al lugar
> correcto pero ya me lo dirán ustedes.
>
> Vuelvo a la carga con mi proyecto de crear una Base de Datos para poder
> facturar (actualmente lo hago en Acces) y no he podido resolver el cómo
> crear 2 llaves primarias en la misma tabla.
>
> Hay alguna solución o alternativa ?
>
> Gracias

Alfredo:

No es posible definir dos claves primarias. La clave primaria de una 
tabla es única, según la teoría de las bases de datos relacionales. Si 
tú tienes dos campos que pueden actuar como clave primaria en una misma 
tabla (es decir que cualquiera de los dos puede identificar unívocamente 
a un registro), entonces debes elegir uno como clave primaria, y dejar 
al otro como clave secundaria.

Si usas la clave secundaria en muchas consultas, te convendrá crear un 
índice de tipo único sobre el campo y no permitir que se almacenen 
valores nulos (esto es, en definitiva lo que es una clave primaria), 
pero ningún motor de base de datos te permitirá crear dos claves 
primarias sobre una misma tabla.

Fíjate también que tan normalizadas están las tablas, porque el 
requerimiento que tienes es un tanto extraño, y puede deberse a un error 
de diseño de las tablas.

Saludos,

Santiago