elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  varios foreign key me da problemas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: varios foreign key me da problemas  (Leído 4,741 veces)
tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
varios foreign key me da problemas
« en: 8 Noviembre 2012, 15:51 pm »

me da problemas error 150 y no marca lineas ni nada pero probando el error esta en que tengo 3 foreign keys si quito los 2 ultimo me van bien y no es lo que quiero. ayuda for favor

Código:
--
-- TABLA clientes
--

CREATE TABLE TEC_clientes(
cod_usu TINYINT,
nombre VARCHAR(25) NOT NULL,
apellidos VARCHAR(35) NOT NULL,
nif VARCHAR(10) NOT NULL,
nombre_empresa VARCHAR(20),
forma_juridica VARCHAR(20),
cif VARCHAR(15),
pais VARCHAR(25) NOT NULL,
provincia VARCHAR(20) NOT NULL,
localidad VARCHAR(20) NOT NULL,
codigo_postal NUMERIC(4) NOT NULL,
direccion VARCHAR(35) NOT NULL,
telefono VARCHAR(10) NOT NULL,
email VARCHAR(35) NOT NULL,
usuario VARCHAR(20) NOT NULL,
contrasena VARCHAR(60) NOT NULL,
CONSTRAINT PKUSU PRIMARY KEY (cod_usu),
CONSTRAINT usuunica2 UNIQUE(usuario)
) ENGINE=InnoDB;


Código:
---
--- TABLA servidores
---

CREATE TABLE TEC_servidores(
descripcion TINYINT,
email TINYINT NOT NULL,
telefono TINYINT NOT NULL,
cod_usu TINYINT NOT NULL,
CONSTRAINT PKDESCRIPCION PRIMARY KEY (descripcion),
CONSTRAINT FKUSUA FOREIGN KEY (cod_usu) REFERENCES TEC_clientes(cod_usu) ON DELETE CASCADE,
CONSTRAINT FKTELEFONO FOREIGN KEY (telefono) REFERENCES TEC_clientes(telefono) ON DELETE CASCADE,
CONSTRAINT FKEMAIL FOREIGN KEY (email) REFERENCES TEC_clientes(email) ON DELETE CASCADE
) ENGINE=InnoDB;


En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #1 en: 9 Noviembre 2012, 05:18 am »

Forening Key Definición: En el contexto de bases de datos relacionales, una clave foránea o clave ajena (o Foreign Key FK) es una limitación referencial entre dos tablas. La clave foránea identifica una columna o grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo de columnas en otra tabla (tabla maestra o referenciada). LAS COLUMNAS EN LA TABLA REFERENDO DEBEN SER LA CLAVE PRIMARIA...

Ahora dime en que fallas?


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #2 en: 9 Noviembre 2012, 16:45 pm »

yo lo que quiero es que el email de una tabla se guarde en la segunda tabla como tambien el telefono. si quito las dos ultimas foreign como te mencionado no salta error pero yo quiero que los datos email,telefono esten en la segunda tabla como te comento que hago¿¿?
En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #3 en: 9 Noviembre 2012, 16:50 pm »

yo lo que quiero es que el email de una tabla se guarde en la segunda tabla como tambien el telefono. si quito las dos ultimas foreign como te mencionado no salta error pero yo quiero que los datos email,telefono esten en la segunda tabla como te comento que hago¿¿?
Tienes que insertar explicitamente los datos en todas las tablas que la requieran.
En línea

tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #4 en: 9 Noviembre 2012, 19:29 pm »

entonces tendria que hacer inserts para esa tabla como dices pero si se cambian datos de una tabla tendre que hacer un update de las 2 tablas no¿? es correcto esto¿¿? y lo estoy haciendo bien seguro¿¿¿?
En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: varios foreign key me da problemas
« Respuesta #5 en: 9 Noviembre 2012, 20:33 pm »

Hola.

Écha un vistazo a estas dos referencias:

http://dev.mysql.com/doc/refman/5.0/es/innodb-foreign-key-constraints.html

http://dev.mysql.com/doc/refman/5.0/es/constraint-primary-key.html

Como bien ha indicado Shell Root, la FK debe apuntar a una PK, aunque no necesariamente (está claro que no es el mejor diseño de la db, o no se considera una buena práctica, pero como poderse hacer, se puede.)

Saludos.
En línea

- Nice to see you again -
tecasoft


Desconectado Desconectado

Mensajes: 319

Ciberseguridad tecasoft.com


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #6 en: 9 Noviembre 2012, 22:36 pm »

estoy casi en las mismas nose que hacer
En línea

http://www.tecasoft.com Un ninja del hacking etico, programacion en html5, css3, javascript, jquery, php, python, c/c++, ensamblador, ingenieria reversa,a auditorias de seguridad, pentesting, exploits
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #7 en: 9 Noviembre 2012, 23:58 pm »

Plantea bien el problema, y te ayudaremos, no se para que duplicar registros en diferentes tablas, si puedes hacer una query para llegar al mismo dato.
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: varios foreign key me da problemas
« Respuesta #8 en: 10 Noviembre 2012, 00:37 am »

Hola.

estoy casi en las mismas nose que hacer

Con la doc enlazada lo que trataba de indicarte es que si los campos a los que apuntan las FK, los defines como UNIQUE, no deberías tener problemas (la integridad referencial evitaría datos incoherentes).

Pero como de nuevo ya te han indicado, para qué definir tantas FK, si en principio con una sola tienes suficiente.

Saludos.
En línea

- Nice to see you again -
Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: varios foreign key me da problemas
« Respuesta #9 en: 13 Noviembre 2012, 17:57 pm »

Código
  1. ---
  2. --- TABLA servidores
  3. ---
  4.  
  5. CREATE TABLE TEC_servidores(
  6. descripcion TINYINT,
  7. email TINYINT NOT NULL,
  8. telefono TINYINT NOT NULL,
  9. cod_usu TINYINT NOT NULL,
  10. CONSTRAINT PKDESCRIPCION PRIMARY KEY (descripcion),
  11. CONSTRAINT FK_TECSERVIDORES_TECCLIENTES FOREIGN KEY (cod_usu,telefono,email) REFERENCES TEC_clientes(cod_usu,telefono,email) ON DELETE CASCADE
  12. ) ENGINE=InnoDB;

Sin embargo esa practica no tiene mucho sentido puesto que ni telefono, ni email forman parte de la llave de la tabla cliente.

Deberías redefinir que es lo que deseas para que así puedas sacar un mejor performance a tus futuras querys.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Foreign Key MySQL
Bases de Datos
InuKen 4 14,699 Último mensaje 19 Julio 2009, 22:43 pm
por ^Tifa^
mysql foreign key???
PHP
Kase 2 3,231 Último mensaje 16 Junio 2010, 14:09 pm
por Kase
FOREIGN KEY MySQL
Bases de Datos
elteliblenaipe 1 2,319 Último mensaje 15 Mayo 2014, 00:05 am
por Carloswaldo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines