Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

PhPMyAdmin Diseñador Relacionar Tablas

Estas en el tema de PhPMyAdmin Diseñador Relacionar Tablas en el foro de Mysql en Foros del Web. Hola, perdonen si este no es foro adecuado para esta consulta, no he visto otro mas apropiado. Resulta que tengo dos tablas Personas y Operaciones ...
  #1 (permalink)  
Antiguo 26/10/2013, 04:55
 
Fecha de Ingreso: noviembre-2012
Mensajes: 32
Antigüedad: 11 años, 5 meses
Puntos: 0
PhPMyAdmin Diseñador Relacionar Tablas

Hola, perdonen si este no es foro adecuado para esta consulta, no he visto otro mas apropiado.

Resulta que tengo dos tablas Personas y Operaciones.

Personas incluye vendedores y clientes, la tabla Operaciones incluye operaciones de compra y de venta, los venderores harán ventas y los clientes compras.

La Primary Key de Personas es: CodTienda + CodPersona
La PK de Operaciones es: CodTienda + CodPersona + CodOperacion

La relacion entre las tablas sería entre claves compuestas de 1 a N mediante los campos:
personas (codtienda, codpersona) 1----- N Operaciones (codtienda, codpersona)

¿alguien sabe como relacionar estos dos campos de una tabla con los dos campos de la otra usando el diseñador? porque solo me deja seleccionar 1 único campo y no una clave compuesta.

Gracias por adelantado
  #2 (permalink)  
Antiguo 26/10/2013, 09:01
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: PhPMyAdmin Diseñador Relacionar Tablas

Cita:
Iniciado por susveneis Ver Mensaje
Hola, perdonen si este no es foro adecuado para esta consulta, no he visto otro mas apropiado.

Resulta que tengo dos tablas Personas y Operaciones.

Personas incluye vendedores y clientes, la tabla Operaciones incluye operaciones de compra y de venta, los venderores harán ventas y los clientes compras.

La Primary Key de Personas es: CodTienda + CodPersona
La PK de Operaciones es: CodTienda + CodPersona + CodOperacion

La relacion entre las tablas sería entre claves compuestas de 1 a N mediante los campos:
personas (codtienda, codpersona) 1----- N Operaciones (codtienda, codpersona)

¿alguien sabe como relacionar estos dos campos de una tabla con los dos campos de la otra usando el diseñador? porque solo me deja seleccionar 1 único campo y no una clave compuesta.

Gracias por adelantado
Este no es el foro de MYSQL, ya te moverán el tema a su foro correspondiente.

Sobre tu duda, creo que estás planteando mal el diseño.

Un usuario puede ser vendedor o comprador ¿no?

Entonces ya tienes una tabla: usuarios.

Estos usuarios realizan transacciones entre si ¿no?

Entonces ya tienes otra tabla: transacciones.

Ahora solo queda que definas el origen de los productos:
-los propios usuarios acuerdan productos fuera del sistema
o
-es el sistema el que ofrece los productos que pueden comerciar entre ellos.

si es el primer caso entonces debes definir en la tabla transacción un campo llamado producto.

si es el segundo caso entonces debes definir una tabla llamada productos.

en ambos casos todas las tablas apuntan con su id a su fk correspondiente en transacciones.
__________________
Ayúdame a hacerlo por mi mismo.
  #3 (permalink)  
Antiguo 26/10/2013, 09:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: PhPMyAdmin Diseñador Relacionar Tablas

Más allá de las "limitaciones" que pueda tener la interfaz visual del phpMyadmin, hay algunos detalles a tener en cuenta:
1) Una FK sólo puede apuntar a una PK (o en su defecto en MySQL a una clave UNIQUE).
2) Una FK debe tener la misma cantidad de campos, del mismo tipo y en el mismo orden que la clave de referencia.
3) Una FK no puede apuntar parcialmente a una clave. Debe apuntar a toda la clave (Ver Modelo Entidad-Relación, y también "Formas Normales" en Wikipedia).
4) En MySQL sólo las tablas InnoDB tienen FK, las MyISAM no.

Por lo demás, espera que muevan el post al foro correcto, que francamente no entiendo cómo es posible que digas que no lo encontraste... está a plena vista en la pagina inicial de FDW... Siendo un problema de Bases de Datos, tienes tanto el subforo "Bases de Datos", como el "MySQL".
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/10/2013, 09:47
 
Fecha de Ingreso: noviembre-2012
Mensajes: 32
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: PhPMyAdmin Diseñador Relacionar Tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Más allá de las "limitaciones" que pueda tener la interfaz visual del phpMyadmin, hay algunos detalles a tener en cuenta:
1) Una FK sólo puede apuntar a una PK (o en su defecto en MySQL a una clave UNIQUE).
2) Una FK debe tener la misma cantidad de campos, del mismo tipo y en el mismo orden que la clave de referencia.
3) Una FK no puede apuntar parcialmente a una clave. Debe apuntar a toda la clave (Ver Modelo Entidad-Relación, y también "Formas Normales" en Wikipedia).
4) En MySQL sólo las tablas InnoDB tienen FK, las MyISAM no.

Por lo demás, espera que muevan el post al foro correcto, que francamente no entiendo cómo es posible que digas que no lo encontraste... está a plena vista en la pagina inicial de FDW... Siendo un problema de Bases de Datos, tienes tanto el subforo "Bases de Datos", como el "MySQL".
Antes que nada gracias por la respuesta. Respecto a lo que dices de que "no entiendes que yo no encontrase...", yo NO he dicho que no encontrase, he dicho que este foro me ha parecido el más adecuado, que no es lo mismo. Te diré que vi el foro de MySql y el de PHP, supuse que los usuarios de PhPmyadmin (utilidad programada en PhP) estarían en el foro de PhP, así que aquí puse el post. Si existe un foro propio y particular para PhpMyAdmin, éste si que no lo he encontrado. No soy un usuario asiduo de estos foros y quizás de ahí mi error. Reitero mis disculpas si he podido molestar...
  #5 (permalink)  
Antiguo 26/10/2013, 10:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: PhPMyAdmin Diseñador Relacionar Tablas

El error es que tu problema no es tanto phpMyadmin, sino las restricciones que te impone MySQL para el diseño, ya que es el DBMS quien pone esas limitantes. phpMyadmin simplemente debe ajustarse a ellas.
En otras palabras, phpMyadmin no te deja haer esas acciones que quieres llevar a cabo, porque MySQL es quien no te deja.
En este punto, te comento que sin conocer y medianamente dominar los principios del diseño de bases de datos, no podrás avanzar mucho tampoco con esa parte de tu proyecto. Hay reglas que se deben cumplir a rajatabla, y no hacerlo además de los impedimentos de implementación, te llevará a errores en consultas, y diseños con problemas en el mediano plazo.

Personalmente te diré que phpMyadmin es una pésima interfaz para ese tipo de tareas. Te recomendaría usar MySQL Workbench, que además de ser nativo, tiene una muy superior herramienta IDE para este tipo de cosas.
Además, incluye recursos que permiten exportar los esquemas tanto en script como directamente a los servidores (si estos admiten las conexiones remotas, por supuesto)
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 26/10/2013 a las 15:35

Etiquetas: diseñador, php, phpmyadmin, relacionar, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:37.