Hace falta la PK SIEMPRE???

08/06/2004 - 00:09 por Marcos | Informe spam
Tengo una tabla del tipo Factura y Detalle, en donde en nro de factura es la
PK, ahora bien en la de detalle, no tengo PK, solo la FK que es el nro de
factura.

Hace falta si o si?
El motor funciona mejor, o que alternativas tengo...

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Adrian D. Garcia
08/06/2004 - 04:29 | Informe spam
Veamos, esta pregunta tiene varios angulos:

Si no tengo definida una PK, desde el punto de vista de rendimiento, si
tengo definido un indice que no permita valores repetidos y que ademas es
agrupado/cluster no habria practicamente diferencias.

Ahora desde el punto de vista de diseño de una base de datos, es casi
incocebible que no tengas definida una PK sobre la tabla.

El definir un PK significa asegurarse que el modelo sea mucho mas explicito
y por otra parte, desde SQL Server significa que se creara un indice que no
permitira valores repetidos, y que a menos que le indique lo contrario, sera
agrupado/cluster.

Mi recomendacion es que le definas la PK y verifiques que si existe ya el
indice que "cubre" las columnas de la clave primaria, que lo borres.

Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Marcos" wrote in message
news:
Tengo una tabla del tipo Factura y Detalle, en donde en nro de factura es


la
PK, ahora bien en la de detalle, no tengo PK, solo la FK que es el nro de
factura.

Hace falta si o si?
El motor funciona mejor, o que alternativas tengo...

Muchas gracias


Respuesta Responder a este mensaje
#2 Miguel Egea
08/06/2004 - 09:03 | Informe spam
Marcos en el modelo que tu dices la pk es el número de factura y el número
de linea, (el minimo conjunto de atributos que define de forma única una
tupla).


-

Miguel Egea Gómez
Webmaster de PortalSQL

(lo de online sobra)
Brigada Anti-Cursores
Microsoft SqlServer M.V.P.

"Marcos" escribió en el mensaje
news:
Tengo una tabla del tipo Factura y Detalle, en donde en nro de factura es


la
PK, ahora bien en la de detalle, no tengo PK, solo la FK que es el nro de
factura.

Hace falta si o si?
El motor funciona mejor, o que alternativas tengo...

Muchas gracias


Respuesta Responder a este mensaje
#3 Javier Loria
08/06/2004 - 15:58 | Informe spam
Hola Marcos:
A los excelentes posteos Adrian y Miguel me gustaria agregar un
concepto, que seria la alternativa. Una Tabla es un conjunto no ordenado de
datos, la llave primaria es lo que identifica una fila. Si no puedes
identificar una fila de otra el conjunto de datos se convierte en un
"basurero de datos".
Siempre debes crear una Llave Primaria, si no existe hay que crearla
artificialmente, inventarla. En el caso de DetalleFactura, te quedan dos
alternativas, la primera es NumeroFactura/NumeroLinea (Es una llave primaria
compuesta), y la otra solamente sirve si los productos no se repiten en las
lineas y puede ser NumeroFactura/CodigoProducto.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Marcos escribio:
Tengo una tabla del tipo Factura y Detalle, en donde en nro de
factura es la PK, ahora bien en la de detalle, no tengo PK, solo la
FK que es el nro de factura.

Hace falta si o si?
El motor funciona mejor, o que alternativas tengo...

Muchas gracias
Respuesta Responder a este mensaje
#4 Marcos
09/06/2004 - 13:04 | Informe spam
Muchas Gracias a todos =)


"Javier Loria" escribió en el mensaje
news:
Hola Marcos:
A los excelentes posteos Adrian y Miguel me gustaria agregar un
concepto, que seria la alternativa. Una Tabla es un conjunto no ordenado


de
datos, la llave primaria es lo que identifica una fila. Si no puedes
identificar una fila de otra el conjunto de datos se convierte en un
"basurero de datos".
Siempre debes crear una Llave Primaria, si no existe hay que crearla
artificialmente, inventarla. En el caso de DetalleFactura, te quedan dos
alternativas, la primera es NumeroFactura/NumeroLinea (Es una llave


primaria
compuesta), y la otra solamente sirve si los productos no se repiten en


las
lineas y puede ser NumeroFactura/CodigoProducto.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Marcos escribio:
> Tengo una tabla del tipo Factura y Detalle, en donde en nro de
> factura es la PK, ahora bien en la de detalle, no tengo PK, solo la
> FK que es el nro de factura.
>
> Hace falta si o si?
> El motor funciona mejor, o que alternativas tengo...
>
> Muchas gracias


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida