Hola como estan!, tengo una base de datos con mas de 12,000 registros, es decir, 12,000 catalogos en una sola tabla, por lo que opte por descomponerla en varias tablas sin perder la relacion de los datos de cada fila con cada columna, pero al asignar una foreign key con tipo de dato INT me sale un error, espero haberme explicado y puedan ayudarme, gracias!
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Como agrego una foreign key de tipo Integer para asociar dos tablas en mysql?
- preguntó
- Web
- 1155 Vistas
- 2 Respuestas
- abierta
2 Respuestas
Una opción es crear una tabla temporal, así como se creó la tabla de autores, como cada autor ya es único lo que se puede hacer es hacer una consulta entre los autores y la tabla donde están los catálogos pero el join se debe realizar con el campo donde almacenan los nombres, algo así:
select autor.id, autor.nombre, catalogo.nombre , catalogo.id, catalogo.* from catalogo inner join autor on (autor.nombre = catalogo.nombre);
Prueba realizar la consulta y después seleccionas solo los campos que desees y luego creas la tabla, como se hizo la división.
(Esto es continuación de otro post)
Por favor, accede o regístrate para añadir un comentario.
Hola iphp,
adivinando lo que estás queriendo hacer, te quedarían:
Tabla Tipos
id
nombre
Tabla SubTipos
id
id_tipo
nombre
Tabla Autor
id
nombre
apellido
etc
Tabla Catálogos
id
id_autor
id_subtipo
etc
Para obtener los Catálogos de un Autor sería:
SELECT C.* FROM (Catalogos AS C, Autores AS A) WHERE C.id_autor=A.id
es decir, todos los campos de la tabla Catálgos, relacionada con los Autores, en dónde el id del Autor es igual al id_autor en el Catálogo.
Para rearmar todos los datos:
SELECT C.id, C.id_autor, A.nombre, A.apellido, T.nombre, ST.nombre, demás campos que quieras
FROM (Catalogos AS C, Autores AS A, Tipos AS T, SubTipos AS ST)
WHERE C.id_autor=A.id
AND C.id_subtipo=ST.nombre
AND ST.id_tipo=T.id
Estoy usando alias de los nombres de las tablas solo para escribir menos, pero da lo mismo. Hacer esto no requiere que definas claves foráneas ni nada (la función de las foreing key es otra: se trata de integridad, pero la query quedaría igual)
A la última query la podés filtrar a su vez por un id_autor, ordenarlas por algún criterio, etc.
Si esto no te alcanza para resolver esta cuestión @iphp, entonces nos vas a tener que enviar en otra pregunta las escructuras de las tablas, para ver en concreto qué estás haciendo.
Saludos cordiales!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 406871
- 1
- Jul 5, 2015
Sin Respuesta
-
- 99
- 0
- Mar 19
-
- 65
- 1
- Feb 26
-
- 155
- 0
- Ene 30
-
- 611
- 0
- Nov 7, 2023
-
- 260
- 0
- Sep 19, 2023
-
- 286
- 0
- Ago 21, 2023
-
- 364
- 0
- May 14, 2023
-
- 324
- 0
- Abr 21, 2023
- ver todas
Preguntas relacionadas
- Problema al relacionar 2 tablas con campos de igual nombre usando INNER JOIN en una BBDD MySql
- Se puede hacer una migración desde una tabla en access a varias tablas en MySQL?
- como agregar dos columna temporales en mysql
- Conteo/suma de dos tablas en base de datos MySQL
- como comparar la fecha actual con una tabla en MYSQL y devolver el listado de esa fecha?
Actividad Reciente
Santiago2610 comentó hace 6 días
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scrapingParkJo preguntó Ene 30
No me deja instalar Oracleelporfirio respondió Ene 10
Actualizar la imagen con los datos devuelto en un …ovedg preguntó Dic 31, 2023
Actualizar la imagen con los datos devuelto en un …Ehdez preguntó Nov 7, 2023
Necesito en wordpress un pluging que me calcule la…pedrourday preguntó Sep 19, 2023
Alternativas a ThreeJS y BabylonJS?pedrourday preguntó Ago 21, 2023
¿Que tecnologias y lenguajes me recomiendan?Fabio respondió Jul 11, 2023
plugin de efecto circular 3d en imagenes
Ultimas Preguntas
Preguntas relacionadas
- Problema al relacionar 2 tablas con campos de igual nombre usando INNER JOIN en una BBDD MySql
- Se puede hacer una migración desde una tabla en access a varias tablas en MySQL?
- como agregar dos columna temporales en mysql
- Conteo/suma de dos tablas en base de datos MySQL
- como comparar la fecha actual con una tabla en MYSQL y devolver el listado de esa fecha?
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150460 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos