Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Algo sobre diseño de base de datos

Estas en el tema de Algo sobre diseño de base de datos en el foro de Mysql en Foros del Web. Verán tengo una duda en este diseño de base de datos y ahora mismo tengo que realizar un pequeños proyecto para registrar los datos de ...
  #1 (permalink)  
Antiguo 17/08/2011, 06:50
user_pippin
Invitado
 
Mensajes: n/a
Puntos:
Algo sobre diseño de base de datos

Verán tengo una duda en este diseño de base de datos y ahora mismo tengo que realizar un pequeños proyecto para registrar los datos de los habitantes de un conjunto residencial.
Nada del código es problema es solo una duda.
Les cuento:

Se deben registrar las casas y seleccionar el estado de la casa (Propia o Arrendada)

Propia-> Se selecciona un propietario de una lista (previamente registrado) se guarda el registro, después tengo que registrar el resto de habitantes de esta casa.

Arrendada-> Se selecciona un propietario de una lista (previamente registrado) y adicional se registra un Arrendatario, y los datos para el resto de habitantes para la casa.
Esto es básicamente lo que toca hacer.

Mi duda es como relaciono propietarios con la casa y en caso de ser de ser arrendada como relaciono al arrendatario con la casa.

No quiero que me den el SQL solo algunas orientaciones y sugerencias, gracias.
  #2 (permalink)  
Antiguo 17/08/2011, 07:02
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Algo sobre diseño de base de datos

Propietarios -> Casa es una relación N:N, por lo que se necesita una tabla para administrarla, la cual podría bien llamarse "propietario_tiene_casa". Esto es N:N porque una casa puede pertenecer a más de un propietario, y cada propietario puede serlo de más de una casa.
La relación de arrendatario, normalmente se expresa por un documento (contrato de alquiler), y en definitiva también es una relación N:N, ya que un arrendatario puede serlo de varios inmuebles, y un contrato de alquiler puede tener varios coarrendatarios, pero sólo es 1:N con Casa, ya que cada contrato sólo puede referirse a un sólo inmueble.
Eso significa que a diferencia de la anterior, está relacionada con las tres tablas.
¿Se comprende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 17/08/2011, 07:20
user_pippin
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sobre diseño de base de datos

Gracias por responder, y te comprendo en algo pero no del todo, este el model E-R que tengo:



EL detalle que hay entre los propietarios y las casa se guarda en una tabla aparte para llevar un historial de quien ha sido el dueño de esa casa.

En caso de ser arrendada relaciono habitantes con del detalle de la casa en un detalle de habitante, para llevar ese registro, solo el primer habitante que se registre para esa casa sera el arrendatario.

Me puedes seguir sugiriendo? Por favor!!!
  #4 (permalink)  
Antiguo 17/08/2011, 07:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Algo sobre diseño de base de datos

Cita:
En caso de ser arrendada relaciono habitantes con del detalle de la casa en un detalle de habitante, para llevar ese registro, solo el primer habitante que se registre para esa casa sera el arrendatario.
Ese modelo responde a un Hotel, un Hostal o un hospedaje, donde las personas que habitan el sitio son información permanente del sistema, y los precios varían de acuerdo a la cantidad de huéspedes.
Pero el arriendo (alquiler, en Argentina) no se analiza quienes habitan el inmueble, sino su alquiler. En ese contexto, los habitantes no son un atributo de la relación, porque la misma se establece entre el propietario y el arrendatario. Es responsabilidad del arrendatario cumplir con los requisitos legales de uso y ocupación del inueble, pero eso no es parte del sistema.
Si, como regla de negocio, el arrendatario debe declarar quienes tienen permanencia en ese sitio, eso es una entidad completamente distinta y se regula con otra tabla. Ponerla en la misma que pones al arrendatario es un error conceptual, ya que esos "habitantes" no son "arrendatario"...
En un modelo de bases de datos, cada tabla debe representar una cosa concreta. Cuando tienes cosas "emparentadas", tienes entidades diferentes, con atributos propios y se representan y almacenan por separado.
No mezcles las cosas o tendrás problemas en el futuro. Ahorrar tablas es sumar problemas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/08/2011, 08:00
user_pippin
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Algo sobre diseño de base de datos

Ok, gracias por tus aclaraciones.

Debo entonces crear un tabla casa, arrendatarios, propietarios y otra habitantes, donde segun aqui:

Cita:
Iniciado por gnzsoloyo Ver Mensaje
el arrendatario debe declarar quienes tienen permanencia en ese sitio
Esto quiere decir que la tabla arrendatarios debe relacionarse con la tabla habitantes. ¿Pero directamente ó por medio de otra tabla algo asi como un detalle?

Gracias
  #6 (permalink)  
Antiguo 17/08/2011, 08:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Algo sobre diseño de base de datos

Los habitantes lo son de una casa. En todo caso puede que haya un vínculo con un arrendatario responsable.
O sea: FK de Casa y FK de Arrendatario como parte de la tabla Habitantes.
En la realidad, debería depender de un documento, como Contrato, donde se expresase, como te comenté, la relación entre Propietario, casa y Arrendatario. De ese modo la condición de habitante de un inmueble nace de la existencia del contrato de alquiler, y por ende están declarados en él.
¿Se puede ver mejor así?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: diseño, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:15.