Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/08/2010, 18:46
sincos
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
[/B] Ayuda ... porfavor PRIMARY KEY[/B]

Hola a todos ¡!

[B]El problema que obtengo es que al intentar introducir el segundo producto en la tabla “pedidoprod” no puedo repetir “numped” que es la PK (entiendo que la PK es irrepetible) entonces como puedo ingresar mas productos? Quiero decir, como podría ingresar un 2do, 3ro y mas productos, si todos ellos pertenecen al mismo numero de pedido? [B]

Podría alguien ayudarme, porfavor … He tomado este ejemplo ya normalizado de Internet:

Si desean ver el ejemplo se encuentra en el siguiente link:

http://www.youtube.com/watch?v=-HajWU4pDLM

La tabla es la siguiente:

https://www3.snapfish.co.uk/snapfishuk/shareeloginsubmit/p=77161282002879073/l=1575472011/g=5248506011/cobrandOid=1007/COBRAND_NAME=snapfishuk/otsc=SYE/otsi=SABE/pns/snapfishuk/share/p=77161282002879073/l=1575472011/g=5248506011/cobrandOid=1007/COBRAND_NAME=snapfishuk/otsc=SYE/otsi=SABE

Como ustedes podrán observar he borrado la fecha. La razón por la cual no la tengo en cuenta es porque esta no es relevancia ni tomada en cuenta para la calificación de este trabajo.

Las tablas obtenidas son las siguientes:

Tercera Forma Normal (3NF)
PEDIDO (numped(PK), numprov(FK), mtotlped)
PEDIDOPROD (numped(PK), numprod(FK), cantped, subtlprod)
PRODUCTO (numprod(PK), descprod, preuniprod)
PROVEEDOR (numprov(PK), nomprov, dirprov)

La sintaxis es la siguiente:

CREATE TABLE proveedor (
numprov int(20) not null,
nomprov varchar(20) not null,
dirprov varchar(20) not null,
PRIMARY KEY(numprov)
)
ENGINE =InnoDB;

CREATE TABLE producto (
numprod int(20) not null,
descprod varchar(20) not null,
preuniprod int(20) not null,
PRIMARY KEY(numprod)
)
ENGINE =InnoDB;

CREATE TABLE pedidoprod (
numped int(20) not null,
numprod int(20) not null,
cantped int(20) not null,
subtlprod int(20) not null,
PRIMARY KEY(numped),
Index(numprod),
FOREIGN KEY(numprod) REFERENCES producto (numprod)
ON UPDATE CASCADE ON DELETE CASCADE )
ENGINE =InnoDB;

CREATE TABLE pedido (
numped int(20) not null,
numprov int(20) not null,
mtotlped int(20) not null,
PRIMARY KEY(numped),
Index(numprov),
FOREIGN KEY(numprov) REFERENCES proveedor (numprov)
ON UPDATE CASCADE ON DELETE CASCADE )
ENGINE =InnoDB;

[B]El problema que obtengo es que al intentar introducir el segundo producto en la tabla “pedidoprod” no puedo repetir “numped” que es la PK (entiendo que la PK es irrepetible) entonces como puedo ingresar mas productos? Quiero decir, como podría ingresar un 2do, 3ro y mas productos, si todos ellos pertenecen al mismo numero de pedido? [B]

Porfavor podría alguien ayudarme ¡!!!! Agradezco inmensamente su colaboración y tiempo.