Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

problemas creando tabla

Estas en el tema de problemas creando tabla en el foro de Mysql en Foros del Web. Hola a todos! Es la primera vez que creo una base de datos y me está dando problema a ver si podeis ayudarme a solucionarlo ...
  #1 (permalink)  
Antiguo 20/04/2009, 02:51
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 0
problemas creando tabla

Hola a todos! Es la primera vez que creo una base de datos y me está dando problema a ver si podeis ayudarme a solucionarlo porque no se cual es

Código:
CREATE DATABASE Prueba;

CREATE TABLE USUARIO(
	idUsuario         int(11) NOT NULL AUTO_INCREMENT,
	userName        varchar(20) NOT NULL,
	password        varchar(20) NOT NULL,
	email               varchar(50) NOT NULL,
               PRIMARY KEY  (idUsuario)
);

CREATE TABLE PRODUCTO(
	idProducto       varchar(5) NOT NULL,
	fk_idUsuario       int(11) NOT NULL,
	nombreProducto    varchar(20),
                precio                  varchar(10),
               PRIMARY KEY (idProducto, fk_idUsuario),
	INDEX (fk_idUsuario),
  	FOREIGN KEY (fk_idUsuario)
    	REFERENCES USUARIO(idUsuario)

	
);

CREATE TABLE LISTAPRODUCTO(
	idProducto    int(11) NOT NULL AUTO_INCREMENT,
	nombreProducto     varchar(20),
               PRIMARY KEY (idProducto)

);

CREATE TABLE PREFERENCIAS(
	idPreferencias		int(15) NOT NULL AUTO_INCREMENT,
	fk_idUsuario		int(11) NOT NULL,
	fk_idProducto		int(5) NOT NULL,
	nombrePreferencia 	varchar(20),
	valorPreferencia	varchar(20),
	PRIMARY KEY (idPreferencias),
                INDEX (fk_idUsuario),
	FOREIGN KEY (fk_idUsuario)
	REFERENCES USUARIO (idUsuario),
	INDEX (fk_idProducto),
	FOREIGN KEY (fk_idProducto)
	REFERENCES PRODUCTO (idProducto)

);
Las tres primeras tablas las creo ok pero me da un errno 150 al crear la tabla preferencias y no se porque es....

Si alguien sabe por que es que me diga que tengo que cambiar..

Un saludo

Última edición por dablin; 20/04/2009 a las 07:44
  #2 (permalink)  
Antiguo 20/04/2009, 06:44
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: problemas creando tabla

Código sql:
Ver original
  1. CREATE TABLE LISTAPRODUCTO(
  2.     idProducto    INT(11) NOT NULL AUTO_INCREMENT,
  3.     nombreProducto     VARCHAR(20),
  4.                PRIMARY KEY (idGadget)
  5.  
  6. );


Esta no puede ser que te funcione!!! ¿De donde sacas idGadget?


Código sql:
Ver original
  1. CREATE TABLE PRODUCTO(
  2.     idProducto       VARCHAR(5) NOT NULL,
  3.         ...


Código sql:
Ver original
  1. CREATE TABLE PREFERENCIAS(
  2.     idPreferencias      INT(15) NOT NULL AUTO_INCREMENT,
  3.     fk_idUsuario        INT(11) NOT NULL,
  4.     fk_idProducto       INT(5) NOT NULL,
  5.         ...

Ves el error de formato en id_Producto?

Quim
  #3 (permalink)  
Antiguo 20/04/2009, 07:46
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas creando tabla

Lo de idGadget es un lapsus..!! es idProducto y despues

las que tienen relacion es la tabla producto y la tabla preferencias pero la tabla listaproducto no tiene ninguna relacion...!

Vamos que el valor idProducto en tabla producto y tabla preferencias si es el mismo pero no tiene porque ser igual en listaprdoductos... aunque tenga el mismo nombre.

¿No se puede? Tiene que ser diferente nombre aunque no tenga nada que ver?

De todas maneras voy a cambiar lo de varchar y int.. eso es otro error ahora se ve todo más claro

Gracias.
  #4 (permalink)  
Antiguo 20/04/2009, 08:19
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: problemas creando tabla

El nombre puede ser igual.
Como dice quimfv, no puedes hacer una relación entre dos campos que tienen un tipo de dato diferente.

Cambia el id_producto de la tabla productos por int o fk_idproducto por varchar

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 20/04/2009, 08:48
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: problemas creando tabla

Cita:
Vamos que el valor idProducto en tabla producto y tabla preferencias si es el mismo pero no tiene porque ser igual en listaprdoductos... aunque tenga el mismo nombre.
Perdón que pregunte, pero si tienes una tabla Producto y otra ListaProductos, y la primera tiene los productos, ¿qué es lo que contiene la segunda?... ¿Qué es lo que almacena cada una?
No se comprende bien la lógica de ese diseño de tablas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 20/04/2009, 11:23
 
Fecha de Ingreso: enero-2009
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: problemas creando tabla

Ok huesos52 queda claro. Gracias!

gnzsoloyo quizás es que me haya explicado un poco mal. Pero bueno te explico que caracteristicas tienen la lista Productos y listadeProductos.

La tabla Productos: almacena los productos que cada usuario a elegido.

Mientras que listaProductos lo que contiene es la lista de todos los productos que tiene la aplicación.

Espero que con eso se entienda un poco más.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:12.