MySQL - Duda con FK y PK

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 8 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

Duda con FK y PK

Publicado por Tomas (7 intervenciones) el 31/10/2016 19:32:24
Hola, lo que necesito es guardar un tiquet con sus productos. Encontré 2 maneras pero no me convencen..
Tengo esta tabla:
1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE TIQUETS (
	fecha date,
	idTiquet INT NOT NULL,
	idProducto int NOT NULL,
	nombreProducto varchar(35) not null,
	precio float not null,
	cantidad int not null,
	subtotalProducto float not null,
	subtotalTiquet float not null,
	FOREIGN KEY(idProducto) REFERENCES PRODUCTOS(id),
	PRIMARY KEY(idTiquet, idPproducto);

Ya investigué por internet los ejemplos de bases de datos con facturas, iba a seguir este modelo:
http://www.hermosaprogramacion.com/2014/07/sistema-facturacion-base-datos/
pero me molesta el hecho de tener otra id mas en la tabla 'detalle' que no use.

La otra opción era una clave primaria compuesta (la tabla de arriba), en este caso iba a poner primary key (idFactura, idProducto), pero idProducto lo tengo como FK (no en la tabla de arriba) a la tabla productos
Hay alguna otra manera de repetir la clave primaria por cada producto para formar el ticket?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 10
Ha aumentado su posición en 8 puestos en MySQL (en relación al último mes)
Gráfica de MySQL

¿Cómo insertar productos en una factura?

Publicado por Tomas (7 intervenciones) el 31/10/2016 22:28:50
Solucionado
No puedo modificar el titulo para concretar la duda, lo dejaré en la respuesta.
Entonces, ya me aclaré , no me acaba de gustar como trabaja MySQL pero es bastante lógico de hacer.
http://www.forosdelweb.com/f21/ejemplo-bd-relacional-1152497/
http://www.forosdelweb.com/f86/todas-las-tablas-tienen-q-tener-primary-key-963608/
Hubiera preferido trabajar con bbdd orientadas a objetos para este caso, pero ya tenia una Mysql montada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar