PDA

Ver la Versión Completa : Consulta sobre relacion en tablas


asdbernardo
18-04-2013, 20:54:40
Buenas tardes foristas de ClubDelphi. Saludos y Gracias de antemano.. ando por aca en una consulta.. a ver

Cuando hablamos de relaciones en mysql. con myphpadmin se refiere a que?

tengo un detalle en cuanto a mysql.

veamos.. quiero realizar unas tablas de acuerdo a como sea mas factible.. y en eso quiero consultar.

Tengo una tabla Titulares y Otra Beneficiarios. que la uso para almacenar los Titulares y sus Beneficiarios.

Ej: ASDBERNA tiene 3 Beneficiarios. Esposa, Hijo, Hija. con los datos personales..
Primero creo el Titular con su cedula de identidad. eso lo tengo claro. pero en cuanto a relacion como puedo relacionarlos?
y como seria su funcionamiento cuando quiera anexar un beneficiario y esas cosas.

las tablas son las siguientes: NOTA:como se observa coloque la Cedula de Beneficiarios como primaria. en ambas. ya que colocaria la cedula en la titular la misma que la beneficiario a la hora de ingresarlo a traves de una interfaz que realizo en delphi 2010. pero no se como trabajar con las relaciones desde alli. utilizo un componente Unidac 4.6 de Devart. a ver que tal va con eso.

TABLA BENEFICIARIO
BEN_CIBeneficiario
TIT_CITitular
BEN_NombresYApellidos
BEN_GeneroBEN_Telefono
BEN_RelacionConTitular
BEN_FechaDeNacimiento
BEN_Edad

TABLA TITULAR
TIT_CITitular
BEN_CIBeneficiario
TIT_NombresYApellidos
TIT_Genero
TIT_Telefono
TIT_RelacionConTitular
TIT_FechaDeNacimiento
TIT_Edad
TIT_Aseguradora
TIT_Direccion
TIT_UnidadEducativa

Utilizo Ammps 2.3 como servidor local.


Saludos y repetida veces Gracias de antemano.

ecfisa
18-04-2013, 23:28:10
Hola asdbernardo .

... pero en cuanto a relacion como puedo relacionarlos?
Si no entendí mal lo que necesitas hacer, bastaría con poner en la tabla BENEFICIARIOS un campo que establecerá la relación.

TABLA TITULARES
---------------
ID
NOMBRE
APELLIDO
...

TABLA BENEFICIARIO
------------------
ID
NOMBRE
APELLIDO
PARENTEZCO
...
TITULAR_ID <= (Relación)


Por ejemplo, para listar los beneficiarios de un determinado titular:

SELECT BE.NOMBRE, BE.APELLIDO, BE.PARENTEZCO, ...
FROM BENEFICIARIOS BE INNER JOIN TITULARES TI ON BE.TITULAR_ID = TI.ID
WHERE TI.ID = :PTITULAR_ID


y como seria su funcionamiento cuando quiera anexar un beneficiario y esas cosas.
Cuando quieras agregar un beneficiario, tendrás que asignarle el ID del titular correspondiente al campo TITULAR_ID antes de guardarlo.

Saludos.

jpgonzalez
19-04-2013, 01:15:13
Tal como dice ecfisa, la solucion es agregar en la tabla beneficiarios el id del titular.
En ese caso, el id de titular pasaria a ser una FK (Foreign key) de tu tabla beneficiarios.

Siempre cuando crees relaciones de tablas, debes fijarte el tipo de relacion entre cada una de ellas:
* 1 a 1
* 1 a muchos
* muchos a muchos

Aqui tienes un link que explica las relaciones entre tablas http://www.aulapc.es/ofimatica_acces_relaciones.html.

Al momento de insertar el beneficiario, tendrias que traer el titular correspondiente e insertar su ID.

Espero te sirva, abrazo!

asdbernardo
19-04-2013, 04:28:13
Ok poco a poco voy captando en este caso eso de id es necesario que las tablas tengan? En este caso podria usar como fk la cedula de identidad o en otras partes creo que se llaman dni. Como clave para identificarlo si se fijan asi lo tengo en mi tabla. Y con respecto a lo de uno a uno uno a muchos en que parte puedo encontrar eso.. en mysql con myphpadmin de ammps 2.3 y necesariamente debo tener 2 tablas o pudiera usar una llamada clientes y todos los campos dentro de ellas. Lo unico que seria doble seria telefonotit y telefonoben o estoy mal?

Gracias de nuevo que me recomiendan para aprender bien desde cero mysql desde myphpadmin

Gracias nuevamente..