Autor Tema: Problemas con base de datos Access  (Leído 3631 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Problemas con base de datos Access
« en: Diciembre 26, 2011, 08:22:50 pm »
Hola tengo una base de datos y estoy teniendo problemas para devolver datos en una consulta para ilustrar de que estoy hablando muestro una imagen

Tengo una tabla Contratos y otra tabla Inquilinos
el campo ID_Inquilino1 de la tabla contratos se relaciona con el ID de Inquilino de la tabla del mismo nombre si fuera un sólo inquilino no habria ningun problema para realizar consultas pero como la aplicacion da la posibilidad de que los inquilinos pueda ser 1 o 2 ahi se complica y creo que la estructura de la base deberia ser diferente que opinan?
Yo necesito que la consulta me devuelva el ID del contrato y cada inquilino 1º y 2º sólo si hay un segundo cargado sino no!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Problemas con base de datos Access
« Respuesta #1 en: Diciembre 26, 2011, 11:04:54 pm »
Me da la impresión de que las tablas estuvieran mal diseñadas, es probable que me equivoque porque no tengo el panorama claro. Creo que la relación es al reves. Tal como esta un inquilino2 no se relaciona con t_Contratos, ademas según se lee de tu gráfica un inquilino puede tener muchos contratos ¿Es correcto?
Haciendo un poco de ejercicio en este lunes aburrido, creo que te faltaría una tercera tabla para tener la relación Inquilinos - Contrato (estoy hablando en borrador) de manera mas manejable.

Digamos:
Tablas: Contratos, Inquilinos, MDatos (maestro de datos del inquilino)
Campos para Contratos
Id_Contrato
Id_Inmueble
Id_Propietario
Id_Inquilino
Id_Garante
etc etc

Campos para MDatos
Id_MDatos
nombre
apellido
etc etc

Campos para Inquilinos
Id_Inquilinos
Id_Contratos (foraneo)
Id_MDatos  (foraneo)

En esta ultima tabla tengo el Id_Contrato y varios inquilinos asociados a ella, de tal forma que la consulta seria para saber los contratos y los inquilinos en ella:

Código: (VB) [Seleccionar]
Select a.Id_Contrato, b.nombre
from MDatos b, Contratos a Inner Join Inquilinos c on
c.Id_Contrato = a.Id_Contrato
Where c.Id_MDatos =  b.Id_MDatos

Si no es esto, seria bueno que publiques tu script SQL para ver claramente lo que deseas.

Saludos

Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Problemas con base de datos Access
« Respuesta #2 en: Diciembre 27, 2011, 12:21:03 am »
Bien Ivan pero te pregunto algo tal y como vos lo citas !!  como harias la estructura si tuvieras que cargar 2 inquilinos y 2 garantes y 2 propietarios ?
« última modificación: Diciembre 27, 2011, 12:44:00 am por YAcosta »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Problemas con base de datos Access
« Respuesta #3 en: Diciembre 27, 2011, 12:43:25 am »
Pensé que estaba clara la idea, es así de simple, te ayudas con otra tabla que seria la que te relaciona, en el ejemplo que te puse uso la tabla llamada inquilinos para llevar allí la relación, de tal forma que puedo tener de 1 a n inquilinos vinculados a un contrato.
Bajo esa idea tienes dos caminos.
Primer camino: Creas una tabla por cada relación (una para garantes, una para propietarios, etc)
Segundo camino: Creas una tabla donde llevas las relaciones de todos esas entidades, esta tabla tendría un campo por cada relación:
Id_Inquilinos
Id_Contratos (foráneo)
Id_MDatos  (foráneo)
Id_Garantes
Id_Propietarios
Id_Vecinos
etc etc.

Como dije en el anterior post, es una idea en borrador, si no me la captas en todo caso es porque no la estoy explicando bien ya que la estoy haciendo al vuelo, el asunto era alcanzarte una idea mas, por allí se presentaran otras en todo caso.

No te digo este tema porque es lo primero que se me ocurra, hace varios años hice un sistema para un mercado de asociados (7,000 socios) y alguno de ellos tenia varias tiendas, o 2 de ellos eran dueños de una tienda, o no era dueño de ninguna pero alquilaba varias, etc etc, por eso te digo que el camino (al menos el que yo opte) es ir por tener una tabla donde lleves únicamente esas relaciones y no hacerlo directamente como el ejemplo que pusiste.

P.D: Edito tu post donde me citas completo y es innecesario porque es una repetición de la sabana que me mande y que es la inmediatamente anterior.
Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Problemas con base de datos Access
« Respuesta #4 en: Diciembre 27, 2011, 09:19:30 am »
Si ya te capte Iban muchas gracias amigo por tu tiempo ahora me pongo a laburar!!!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.