Autor Tema: Vincular Tablas (SOLUCIONADO)  (Leído 7359 veces)

Desconectado jumbee

  • Junior Member
  • **
  • Mensajes: 52
Vincular Tablas (SOLUCIONADO)
« en: 13 de Mayo de 2011, 01:22:02 am »
Hola de nuevo

Esta vez necesito vincular las tablas que tengo en mi Base de Datos y estas son "horario" y "actividad" mediante la llave o campo "id_actividad" , estoy utilizando phpMyAdmin para gestionar mis BD pero no se como hacerlo, alguna sugerencia ??

** (El campo "id_actividad" tiene los mismo valores en ambas tablas)

Desconectado shicefgo

  • Member
  • ***
  • Mensajes: 166
Re: Vincular Tablas
« Respuesta #1 en: 13 de Mayo de 2011, 09:21:48 pm »
Hola.
¿Qué es lo que quieres conseguir al vincular las tablas?

Por ejemplo, que una no pueda tener un valor que no contenga la otra.
O alguna otra cosa, ya dirás.

Pero antes debes asegurarte de que estás utilizando el motor InnoDB en MySQL. En las últimas versiones creo que ya está por defecto, pero asegúrate de que no usas myisam porque ese motor no permite vinculación directa (tendrías que realizar el equivalente en el código de tu programa).



Desconectado jumbee

  • Junior Member
  • **
  • Mensajes: 52
Re: Vincular Tablas
« Respuesta #2 en: 14 de Mayo de 2011, 01:01:24 am »

Hola shicefgo

Como soy nueva en esto, me aconsejaron que dividiera mi base de datos en diversas tablas con el fin de evitar saturarlas de información. Con las relaciones entre tablas quiero realizar consultas, donde una tabla contenga informacion sobre un cliente y otra sobre un producto pero vinculadas por un mismo campo llamado compra (por ejemplo ).

Ya estuve checando y el motor de busqueda que utilice es myisam, porque no tengo InnoDB.

Ahora me surgio otra duda, no estoy confundiendo el término "Vincular" con el de "Relacionar" tablas ??

Saludos



Desconectado shicefgo

  • Member
  • ***
  • Mensajes: 166
Re: Vincular Tablas
« Respuesta #3 en: 14 de Mayo de 2011, 11:28:54 am »
El motor InnoDB lo puedes elegir al crear la tabla.
Una vez cerrados los paréntesis que contienen la descripción de las columnas, añade: "ENGINE InnoDB" y, si quieres evitarte posibles líos de codificación de caracteres, también puedes añadir a continuación "DEFAULT CHARACTER SET utf8" (en ambos casos sin las comillas). Ejemplo:
Código: [Seleccionar]
'CREATE TABLE clientes (id_cliente VARCHAR(16) NOT NULL, nombre VARCHAR(80), nif VARCHAR(12) ... etc.) ENGINE InnoDB DEFAULT CHARACTER SET utf8';

Hablando de tablas y bases de datos, los términos "relacionar" y "vincular" se refieren a lo mismo. Se trata de que una columna de la tablav 'A', llamada por ejemplo 'Ac1' sea un índice primario, y que otra columna de la tabla 'B', llamada por ejemplo 'Bc2' contenga los mismos datos que 'Ac1'. De esta forma se "vincula" o "relaciona" la tabla 'B' con la tabla 'A'. En tu caso, quieres relacionar las tablas "horario" y "actividad" a través de la columna 'id_actividad'.

Yo haría:
1. Diseñar la tabla de actividades con el índice primario 'id_actividad'.
2. Diseñar la tabla de horarios incluyendo en ella una columna que contenga los mismos datos que el índice primario de la tabla de actividades (puede llamarse igual sabiendo manejarse en las consultas), y decirle que utilice como índice externo (FOREIGN KEY) la columna 'id_actividad' de la tabla de actividades.

Pero me parece ver que aún no tienes mucha idea sobre implementación de bases de datos, diseño de tablas, cómo estructurar la información... en fin, que el asunto tiene "mucha tela que cortar", como dicen en mi pueblo. Te recomiendo una búsqueda en internet utilizando términos como: "bases de datos relacionales", "diseño de tablas en bases de datos" y cosas por el estilo.
Éste enlace contiene bastante información sobre bases de datos, de forma general y también específica para MySQL.
Éste otro y éste son introducciones y tutoriales del lenguaje SQL.
Y aquí tienes una traducción del manual de referencia de MySQL.

Pues nada, a leer un poco se ha dicho. ;-)

Saludos.

Desconectado jumbee

  • Junior Member
  • **
  • Mensajes: 52
Re: Vincular Tablas
« Respuesta #4 en: 14 de Mayo de 2011, 09:09:21 pm »

Hola shicefgo

La verdad es que acertaste, he estado estudiando pero aun asi no conozco mucho del tema. Tambien modifique mi base de datos y active la opcion de phpMyAdmin para trabajar con tablas vinculadas con el motor myisam, ya he creado las relaciones entre mis tablas y comence a leer la informacion que me pasaste.

Dejame decirte que tus explicaciones son muy buenas, me han servido mucho, ahora voy a trabajar con el motor InnoDB para comparar uno con otro y ya les estaré comentando en el foro como me fue.

Te agradezco por los links la informacion me es muy util.
Gracias !!  :cool:

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License