Apúntate a la Zona De Descargas Reservadas (ZDDR). Solo son 20 Euros
Con solo 20€ ayudarás
a mantener el foro.
Usace, solo opinion


Seguir a udias en Twitter
Directorio de Empresas de Foros de informática


Todo lo que sueñas, se puede diseñar.
We build your dreams.

 - Principal - Responder - Estadísticas - Registrarse - Buscar - Lista de usuarios -  - Zona de Descargas
 -
Ayuda al foro con tu donación
Foros en Udias.com / FileMaker / Entendiendo las relaciones al detalle
Autor Mensaje

Miembro

Ocasional

  Karma     12

#1 Publicado: 23 Ago 2017 20:49



Buenas una vez mas,

Hoy me propongo un gran reto y es que desde que comence a utilizar filemaker nunca he acabado de entender a fondo las relaciones.

He visto la serie de videos de udias en youtube, videos los cuales agradezco enormemente por que estan muy pero muy bien explicados, por otro lado he leido varios hilos en este mismo foro, y he consultado a otros amigos que tambien trabajan con este maravilloso programa.

La cuestion es la siguiente, tal y como se indica en el video de udias para crear una relacion tengo claro que debo crear un campo con una clave primaria en una tabla, otro campo con una clave foranea en la otra y relacionarlas. De esta manera tendriamos dos tablas relacionadas.

Lo que realmente no entiendo es como funciona todo esto en un plano teorico.
En otro video que he encontrado por youtube, he encontrado un video bastante ilustrativo donde mas o menos explican lo que quiero saber pero esta mas bien relacionado con los portales, [youtube=https://www.youtube.com/watch?v=M9vDeISUS fo]

Como indica en el video si tenemos una tabla con nombres, por ejemplo pepe, paco y lucia, se le asigna un numero a cada uno, por ejemplo pepe=1, paco=2 y lucia =3.

Y por otro lado tenemos productos, por ejemplo, teclados, ratones, monitories, mesas, sillas, clips, al relacionarlos se le asignan el mismo numero que a la persona a la que corresponde, por ejemplo:

1pepe 2paco 3lucia
1meses 2sillas 3clips

de esta manera filamaker de alguna manera lo que hace es busca el mismo codigo entre ambas tablas para relacionar.

Ahora la gran pregunta, si yo tengo dos tablas, vamos a poner que tengo una de empresas y otra de personas, sin usar portales, como podria decirle a filemaker que de la tabla de personas 5 de ellas pertenecen a una empresa de otra tabla, es decir, como le pongo ese numero a la empresa y como asocio ese numero a todos los miembros de esa empresa que se encuentran en la otra tabla?

Voy a adjuntar un pantallazo a ver si se entiende un poco mejor lo del numero que relaciona las tablas.

Seguro que no me he explicado bien pero creo que es una duda que muchos tienen y creo que aclarar este tema va a ayudar a mas de uno a poder entender mejor las relaciones y sacar mayor provecho de ellas.

Saludos.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
windows

Miembro

Ocasional

  Karma     12

#2 Publicado: 23 Ago 2017 20:51



Adjunto el pantallazo:

Relaciones
Relaciones

Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
windows

Moderador


  Karma               2031

#3 Publicado: 23 Ago 2017 22:07 - Editado por: flusheddata



Hola.
Imagina un patio de un colegio con tres profesores y nueve alumnos.
Un profesor lleva una gorra verde, otro una gorra azul y otro una gorra amarilla.
Cuatro alumnos llevan camiseta verde, tres alumnos llevan camiseta azul y dos alumnos llevan camiseta amarilla.

Sabremos qué alumnos corresponden a cada profesor comparando el color de su camiseta con el color de la gorra del profesor.

¿Por qué gorras para los profesores y camisetas para los alumnos?
Gorra = Clave primaria ( valor único, no repetido)
Camiseta = Clave foránea o externa ( el valor puede estar repetido, ej. 2 alumnos con el mismo color de camiseta).

¿Pueden tener gorra los alumnos?
Sí, de hecho "deben" tenerla. Todo registro deberá tener siempre clave primaria (única, autogenerada y no reutilizable) tanto si se va a utilizar para una relación como si no.

Ten en cuenta que el símil del colegio representa una relación del tipo UNO A MUCHOS. Un profesor puede tener muchos alumnos.
También existe la relación de uno a uno. Se hace igual. El marido tendrá su gorra, pero sólo puede existir una esposa con una camiseta del mismo color. En este caso es la lógica del negocio (business logic) la que establece que no se puedan relacionar dos esposas con el mismo marido (en España está prohibido).

Otro tipo de relación es MUCHOS A MUCHOS, pero en un Gestor de Base de datos Relacional ésto está prohibido. La única forma ortodoxa de hacerlo es mediante una tabla intermedia, también llamada Join Table. Pero esto es otra historia.

Espero que el símil te ayude a comprender las relaciones.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Emptiness matters! Windows 10, FileMaker Pro 16 Advanced

Miembro

Ocasional

  Karma     12

#4 Publicado: 24 Ago 2017 13:22



Buenas,

Muchas gracias por la respuesta.

Muy buena explicación, entonces, según creo haber entendido, todas las tablas deben tener una clave primaria, aunque no se vaya a utilizar para la relación, es decir, que a la tabla de profesores le crearía un campo kp (primary key) y a la tabla de alumnos un campo kp y un campo kf (foreign key), para el caso que quiero relacionar los profesores con los alumnos como describiste anteriormente, en relaciones enlazo la kp de profesores con el kf de la tabla alumnos, ¿es así?

Ahora, dado el caso practico que haz descrito, ahora quiero dar de alta un alumno nuevo, sin utilizar portales, entiendo que debería ir a la tabla alumnos para dar el alta, pero ahora, como hago para indicar que este nuevo alumno pertenece al profesor tal?

Muchas gracias nuevamente por la ayuda.

Un saludo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
windows

Moderador


  Karma               2031

#5 Publicado: 24 Ago 2017 15:08 - Editado por: flusheddata



edmar_r:
Muy buena explicación, entonces, según creo haber entendido, todas las tablas deben tener una clave primaria, aunque no se vaya a utilizar para la relación, es decir, que a la tabla de profesores le crearía un campo kp (primary key) y a la tabla de alumnos un campo kp y un campo kf (foreign key), para el caso que quiero relacionar los profesores con los alumnos como describiste anteriormente, en relaciones enlazo la kp de profesores con el kf de la tabla alumnos, ¿es así?

Exactamente, así es.

edmar_r:
Ahora, dado el caso practico que haz descrito, ahora quiero dar de alta un alumno nuevo, sin utilizar portales, entiendo que debería ir a la tabla alumnos para dar el alta, pero ahora, como hago para indicar que este nuevo alumno pertenece al profesor tal?

Puedes usar una lista de valores en el campo kf_profesor que muestre kp_profesor y nombre, de la tabla profesores.

Aunque sospecho que en tu caso se trata de una relación de muchos a muchos porque un profesor puede tener muchos alumnos y un alumno puede estar asignado a muchos profesores.
¿Solución? Tabla intermedia con los campos kf_profesor y kf-
_alumno. Puedes llamarla ASIGNACION.
La relación desde profesor sería PROFESOR::kp = ASIGNACION::kf_profesor y ASIGNACION::kf_alumno
= ALUMNO::kp_alumno
Al revés (de derecha a izquierda) para asignar en ALUMNOS los profesores.
En la ocurrencia de tabla ASIGNACION debes marcar la opción "Permitir la creación de registros..."

Un saludo.


Si este mensaje te ha servido de ayuda dale tu voto Voto positivo, si quieres penalizarlo Voto positivo
Emptiness matters! Windows 10, FileMaker Pro 16 Advanced
Su respuesta

Estilo Negrillas  Estilo Italico  Estilo Subrayado  URL De La Imagen  URL De La Web  Preformatted Text  YouTube URL  Sin código BB
Emoticones
:) ;) :up: :down: :biglol: :confused :cool: :mad: :sad: :shame: :smirk: :tongue: ... Más  Emoticones desactivados
Color de texto
Texto en negro Texto en blanco Texto en gris Texto en rojo Texto en azul Texto en verde Texto en rojo oscuro Texto en cian Texto en azul oscuro Texto en púrpura Texto en amarillo Texto en rosa Texto en naranja Texto en verde oliva Texto en marrón



 » Usuario  » Contraseña 
Solo Usuarios Registrados Pueden Postiar Aqui.
 

Tópicos relacionados con Entendiendo las relaciones al detalle

Archivo Entendiendo las Relaciones
Entendiendo las...
listas con detalle
Desplazarse al detalle de el portal
Reporte que detalle taba hija


Conectados: Invitados - 9
Miembros - 1 border=0 rcarlos99
En verde usuarios ZDDR

Realizado con miniBB © 2001-2017
Para Udias.com © 1996-2017
Hosting con Interdominios