Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Crear relaciones en Firebird

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Crear relaciones en Firebird Responder citando

¿Cómo podría crear relaciones entre 2 tablas una vez creadas en Firebird?

Utilizo "EMS Interbase/FireBird Manager" a través del cual creo las tablas y los campos de forma muy cómoda, pero me atasco a la hora de establecer campos Primarios y Foráneos, y la relación entre ellos.

¿Lo puedo realizar con esta aplicación o es más cómodo desde alguna otra?

Gracias a todos.
_________________
LA INSPIRACIÓN EXISTE, PERO TIENE QUE ENCONTRARTE TRABAJANDO
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Es muy cómodo hacerlo con EMS, de hecho es la que yo utilizo.

Suponiendo que tienes dos tablas llamadas Clientes y Pedidos respectivamente. La relacion a crear es 1..m (Uno a muchos)... es decir, un cliente tiene muchos pedidos.

Bien, al hacer doble clic sobre cualquier tabla declarada, te aparecerá del lado derecho toda la información sobre esa tabla. la información se presenta a través de fichas (otros los llaman pestañas). Estas fichas son las siguientes: Campos, Restricciones, Indices, Dependencias, Disparadores, Datos, Descripción y DDL.

Para tu primer duda, sobre crear la llave principal, si se trata de un solo campo, lo pudesa hacer desde la declaración del mismo. Al momento de craer la tabla, te pide crear la primera columna o campo y en la parte derecha tiene dos opciones Not Null y Primary Key. Habilita la casilla de verifición "Primary Key" para que esa campo sea tu llave primaria.

Para el segundo caso, tomando como ejemplo las tablas de Clientes y Pedidos, el campo foráneo el el Id del cliente en la tabla de Pedidos por lo tanto se hace doble clic sobre la tabla interesada (en este caso Pedidos) y se selecciona la ficha Restricciones.

Al agregar una restricción te aparece la pantalla con tres fichas, una para cada tipo de restricción (LLave primaria, Llave foránea y restricción tipo Check). Selecciona la ficha "Foreing Key o llave foránea, segun el idioma de tu aplicación", te aparecen cuatro cuadros de lista, el primero muestra la lista de campos disponibles, selecciona el campo que te interese relacionar, en este caso supondremos que mi campo que hace referencia al cliente en la tabla pedidos se llama "IdCliente". Agrega el campo al la lista de campos incluidos para la realción. Posteriormente debes seleccionar la tabla sobre la cual existe el campo externo al que se va a relacionar, para esto utiliza el combo que indica las tablas restantes. En este caso selecciona la tabla que te interese (clientes en este caso) y aparecen los campos disponibles de la tabla, selecciona el campo campo que te interesa y agregalo a la lista de campos incluidos. Y listo!!!!

Puedes agregar reglas de integridad como por ejemplo que al eliminar un cliente se eliminen en cascada todos sus pedidos...o el caso contrario... no eliminar un cliente si es que este tiene pedidos registrados. Checate la opciones y elige la que mas te convenga. Estas reglas aplican tanto para el borrado como de acualización.

Saludos
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Facilisimo Responder citando

Gracias Buildero.

Impresionante lo fácil que resultan las cosas cuando te indican el camino. Estoy intentando trasladar mi aplicación de gestión a Firebird, y voy poco a poco, así que amenazo con aparecer por el foro con temas de este estilo (espero que más complicados cada vez), pero me acojo a tu lema

Gracias de nuevo. Wink
_________________
LA INSPIRACIÓN EXISTE, PERO TIENE QUE ENCONTRARTE TRABAJANDO
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.