Relacionar 2 tablas..


([N1] leonardo daniel velazquez fuentes) #1

Hola, tengo una duda… tengo 2 tablas

  • Ciudades:

    • id (automatica de velneo)
    • nombre_ciudad
    • cod_postal
    • cod_estado
  • Estados

    • id (automatica velneo, clave unica)
    • cod_estado (clave unica)
    • nombre_estado

lo que necesito es relacionar las 2 tablas, por medio del campo cod_estado , pero cuando hago la relacion en el esquema la hace por el id, y si selecciono el campo cod_estado de la tabla ciudades , y le digo que sera campo con relacion maestra con tabla de estados, me pone tipo de campo numerico, no me deja seleccionar el campo de la relacion…


([N2] Mgalvezh) #2

Indice en Estados campo cod_estado, Puntero indirecto real o virtual en ciudades contra Estados indice el creado antes, resolucion cod_estado, pero esta no es la forma correcta de relacionar este tipo de tablas, lo suyo seria maestra Estados, historica ciudades.

Saludos.
Miguel.


([N4] Infortic) #3

Hola.

¿Para qué quieres exáctamente que sea por código en lugar por Id?

Al enlazarlo por Id tienes acceso siempre al código de estado #CIUDAD.COD_ESTADO.COD_ESTADO

En los formularios de ciudades, para seleccionar el estado puedes poner el textbox con contenido #COD_ESTADO.COD_ESTADO y él sólo te resolverá y guardará el ID del estado en Ciudades.

Si aun así por algo que no entiendo necesitas que esté relacionado por el código alfanumérico tendrás que crear la tabla estados como maestra con clave alfanumérica, así el ID será alfanumérico y corresponderá al código de estado.


([N1] leonardo daniel velazquez fuentes) #4

Porque no hay formularios ciudades, ni estados, son catalogos que se cargan a la base de datos, lo que podria hacer es lo que me dijeron mas arriba, o crear un proceso y recorrer ciudades tomar el state_code y buscarlo en estados, sacar su ID y grabarlo en estados, pero seria complicarmela mas…

[quote quote=46672]Hola.

¿Para qué quieres exáctamente que sea por código en lugar por Id?

Al enlazarlo por Id tienes acceso siempre al código de estado #CIUDAD.COD_ESTADO.COD_ESTADO

En los formularios de ciudades, para seleccionar el estado puedes poner el textbox con contenido #COD_ESTADO.COD_ESTADO y él sólo te resolverá y guardará el ID del estado en Ciudades.

Si aun así por algo que no entiendo necesitas que esté relacionado por el código alfanumérico tendrás que crear la tabla estados como maestra con clave alfanumérica, así el ID será alfanumérico y corresponderá al código de estado.

[/quote]

([N4] Infortic) #5

Hola.

No hace falta que recorras la tabla, para eso están los índices, un cargar lista por el indice cod_estado te devuleve el registro conctreto.

Créate el campo ESTADOS enlace a maestro y el campo cod_estado de tipo alfabético (sin enlace), tu cargarás sólo el campo cod_estado y el campo ESTADOS lo calculas.

Para resolver el ID del estado y cargar ESTADOS hay muchos métodos, como el que comenta Mgalvhez, o crear una función que obtiene el ID del estado GET_ID_ESTADO(cod_estado) y usarla de contenido inicial de ESTADO, o en los triggers de la tabla CIUDADES buscar el ID con un cargar lista.