Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Duda acerca de las keys (https://www.clubdelphi.com/foros/showthread.php?t=31744)

joanajj 16-05-2006 19:29:46

Duda acerca de las keys
 
Buenas tardes, alguien sabría decirme que diferencia hay entra la clave primaria y la foreign key ???

Gracias...

Lepe 16-05-2006 21:08:27

La primary key (clave primaria, principal) es un valor que identifica inequivocamente un registro, normalmente se usa un número AutoIncrementable que jamás se repite.

La Foreign key (clave ajena, clave foránea) es un valor que hace referencia a la clave principal... me explico con un ejemplo:

Tienes la tabla CLIENTES con los datos personales, y allí creas la clave primaria, un código que se autoincrementa cuando se da de alta un nuevo cliente.

Ahora en la tabla facturas quieres identificar a qué cliente pertenece esa factura, añades un campo codigo que será clave ajena, es decir, en ese campo guardas el código que tiene ese cliente en la tabla CLIENTES.

Por supuesto debes permitir que la clave ajena pueda tener valores duplicados, ya que un mismo cliente puede tener varias facturas, por tanto, el código del cliente se repetirá en varios registros en la tabla FACTURAS.

Saludos.

joanajj 17-05-2006 00:32:11

Gracias
 
Gracias por la ayuda:)

joanajj 20-05-2006 18:47:31

Sigue sin funcionar
 
buenas de nuevo; he hecho lo que me habeis dicho y no funciona:

las claves estän definidas como sigue:

En tabla1:

NUMERO es Clave primaria e índice UNIQUE

En tabla2

NUMERO es clave foranea(a NUMERO en tabla1) e índice NO UNIQUE

y al hacer lo que me decís sigo con el error mencionado al principio.

La idea era hacer dos tablas relacionadas maestro-detalle de forma que un factura maestra por ej.1000, tenga un detalle con varias lineas de esa factura 1000. Sin enrrollarme, una simple factura.

Si me podéis ayudar un poco más... Gracias

lucasarts_18 20-05-2006 20:35:01

Cita:

Empezado por joanajj
y al hacer lo que me decís sigo con el error mencionado al principio.

Me he perdido de algo :eek: ?, yo no veo ningún mensaje de error que mencionas

Hasta Luego -

joanajj 20-05-2006 21:23:28

Es ciertome equivoque
 
Lo paso a Error Firebird que es el mensaje al que me refería


Perdón...:(


La franja horaria es GMT +2. Ahora son las 00:19:42.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi