Este es el diagrama explicado en clase:
Los errores están sombreados en azul.
Lo correcto es:
Número PK - Int
DNI(FK Tb_Cliente) - String
Código(FK y PK Tb_Productos) - String
Y para demostrar que es correcto lo que digo, analicemos el resultado de las siguientes consultas:
SHOW CREATE TABLE FACTURAS;
SHOW CREATE TABLE ITEMS_FACTURAS;
