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
- 1367 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
-
- 691164
- 1
- Jul 5, 2015
Sin Respuesta
-
- 179
- 0
- Oct 18
-
- 188
- 0
- Jul 9
-
- 587
- 1
- Mar 19
-
- 462
- 2
- Feb 26
-
- 5072
- 0
- Nov 7, 2023
-
- 494
- 0
- Sep 19, 2023
-
- 502
- 0
- Ago 21, 2023
-
- 658
- 0
- May 14, 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
mchojrin respondió Dic 9
Ayuda , necesito mostrar datos creados solo por el…alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scraping
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
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos