Pregunta:
Fecha: 22-12-2017 02:30:38
(En Español)
Tengo una duda y me gustaría que alguno de los expertos que hay en esta comunidad me explicara el por qué.
En su día cuando me enseñaron a hacer bases de datos, me explicaron que debía relacionar 2 tablas mediante una tercera tabla que llamaban "tabla pivote" y luego hacer una foreing_key.
Por ejemplo. Si tenemos estas tablas:
1 - inmuebles,(id_inmueble, nombre, direccion, etc....)
2 - provincias,(id_provincia, nombre)
Se relacionaban mediante una tercera tabla por ejemplo
3 - inmuebles_provincias
Y en la tabla pivote lo que habrá es
id_inmueble
id_provincia
Y yo pienso... no es más cómodo hacer directamente en la tabla de inmuebles meter la id_provincia y se ahorra la tercera tabla?
inmuebles,(id_inmueble, nombre, direccion, id_provincia)
Consultas más sencillas y yo creo que es igual de funcional no?
Por favor sáquenme de dudas.
Votos: 0 - Respuestas: 8 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
¿Cómo? y ¿Por qué? hacer tablas "PIVOTE" MySql[Resuelta]
Hola compañeros.Tengo una duda y me gustaría que alguno de los expertos que hay en esta comunidad me explicara el por qué.
En su día cuando me enseñaron a hacer bases de datos, me explicaron que debía relacionar 2 tablas mediante una tercera tabla que llamaban "tabla pivote" y luego hacer una foreing_key.
Por ejemplo. Si tenemos estas tablas:
1 - inmuebles,(id_inmueble, nombre, direccion, etc....)
2 - provincias,(id_provincia, nombre)
Se relacionaban mediante una tercera tabla por ejemplo
3 - inmuebles_provincias
Y en la tabla pivote lo que habrá es
id_inmueble
id_provincia
Y yo pienso... no es más cómodo hacer directamente en la tabla de inmuebles meter la id_provincia y se ahorra la tercera tabla?
inmuebles,(id_inmueble, nombre, direccion, id_provincia)
Consultas más sencillas y yo creo que es igual de funcional no?
Por favor sáquenme de dudas.
Votos: 0 - Respuestas: 8 - Vistas: 17 Compartir en: Google Facebook Twitter LinkedIn Link
Respuestas:
-
Fecha: 22-12-2017 06:06:23 Tu profesor solo te quería joder la vida XD, no ya en serio. Esa tabla la utilizas cuando la relación es uno a muchos o muchos a muchos, por ejemplo:
usuario [id, nombre, ...]
equipo [id, nombre, ... ]
como un usuario puede tener asignados varios equipos o un equipo ser asignado a varios usuarios uso una tabla adicional para registrar esas asignaciones:
asignacion_equipo (o usuario_equipo) [usuario, equipo, ... ]
Saludos. Votos: 3 - Link respuesta -
Fecha: 22-12-2017 11:44:46 Hola Fran.
Estoy de acuerdo con lo dicho por Jorge.
Te dejo un video en donde se explica tal tema.
Base de Datos #3| Ejercicio Diagrama Entidad Relación
También te dejo la lista de reproducción de todos los videos sobre base de datos.
Base de Datos
Espero que te sirva para comprenderlo mejor.
Saludos Votos: 3 - Link respuesta -
Fecha: 23-12-2017 02:20:40 Hola Fran lo que comentan de uno a muchos es correcto podrás agregar ejemplo, muchos número de teléfonos para un usuario sin tene que agregar más columnas y y la otra opción es que al usar el Idoprovincia, nombre provincia en la tabla de los inmuebles sólo almacenas el Id luego para traer el nombre de la provincia lo relaciona en la sentencia, con esto logras tener menos caracteres en tu base de datos x lo que pesará menos. Eso es lo que yo entiendo si me equivoco que alguien me corrija . Saludos Votos: 1 - Link respuesta
-
Fecha: 23-12-2017 23:01:52 Esas tablas pivote como dices (creo que se llaman de union) solo proceden cuando la relación es de varios a varios.
Un inmueble solo puede pertenecer a una provincia, aunque en una provincia puede haber varios inmuebles. Es por tanto una relación de uno (provincias) a varios (inmuebles), y hay que hacerlo como dices, con un campo id provincia en cada inmueble.
Si por ejemplo se tratara de propietarios, un inmueble puede tener varios propietarios y a la vez un propietario puede tener varios inmuebles. En este caso es necesaria una tercera tabla que especifique el id del inmueble y el id del propietario, con tantas filas por inmueble como propietarios haya:
Inmueble X - Propietario A
Inmueble X - Propietario B
Inmueble X - Propietario C
Podrías añadir más columnas, como el % de participación de cada propietario. Votos: 1 - Link respuesta -
Fecha: 23-12-2017 23:16:52 Una alternativa a lo que he dicho anteriormente, para ahorrarnos una tercera tabla, es en la tabla inmuebles crear un campo que guarde una lista de los ids de sus propietarios:
Inmueble X - 1,2,3... (lista ids de sus propietarios).
Esto si la lista va a ser corta y la información de propietarios no es importante. Lo vamos a tener más difícil (y lento) si queremos saber los inmuebles de cada propietario. Votos: 1 - Link respuesta -
Fecha: 24-12-2017 14:02:51 Este tema trata de Normalización de bases de datos
Hay mucha info en la red sobre Normalización de bases de datos
Dejo otro video
Normalizacion (1FN, 2FN,3FN)
BD Relacionales: Normalización
Ejemplo de normalización
Saludos Votos: 2 - Link respuesta -
Fecha: 02-01-2018 04:18:55 Ya me ha quedado claro, muchas gracias a todos compañeros. Votos: 0 - Link respuesta
-
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
