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

Duda de diseño

Estas en el tema de Duda de diseño en el foro de Bases de Datos General en Foros del Web. Hace algún tiempo tengo esta duda y espero que me puedan dar una manito o algún link para leer. Supongamos que debo almacenar en una ...
  #1 (permalink)  
Antiguo 19/10/2009, 11:58
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Duda de diseño

Hace algún tiempo tengo esta duda y espero que me puedan dar una manito o algún link para leer.

Supongamos que debo almacenar en una tabla informacion sobre propiedades. Tengo campos basicos como que tipo de inmueble es, direccion, el barrio, el precio, etc.

Y gran cantidad de campos extras para especificar caracteristicas segun que tipo de propiedad es. Por ejemplo si se trata de un departamento, las características podrían ser: Tipo de Edificio, Categoría, Cant. de pisos, Deptos por piso, Ascensores, etc pero en cambio si se tratase de una oficina las características serían: Recepción, Nº de despachos, Sala de reuniones, Baños, Cocina, etc.

Lo que se me habia ocurrido es lo siguiente, una tabla propiedades que contiene los datos basicos, una tabla caracteristicas_departamento que se relaciona 1:1 con propiedades y una tabla caracteristicas_oficina que se relaciona 1:1 con propiedades


tabla propiedades: id_propiedad, tipo, direcicon ,barrio, precio
tabla caracteristicas_departamento: propiedad, tipo_edificio, categoria, cant_pisos
tabla caracteristicas_oficina: propiedad, recepcion, despachos, sala_reuniones


Que opinan?


Muchisimas gracias.
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #2 (permalink)  
Antiguo 19/10/2009, 12:16
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, 5 meses
Puntos: 2658
Respuesta: Duda de diseño

La idea está cerca de lo que define el modelo ER extendido: Te has topado con la herencia, caso que no suele verse demasiado seguido y que es mucho más habitual en programación orientada a objetos.
El esquema básico es correcto: Tienes una entidad principal que es la que contiene los atributos base (Propiedad, en este caso), y las entidades hija que son Departamento, Casa, Oficina, Terreno, Etc, de una atomización que surja de la comparación de atributos.
Lo que suele decirse es que si una entidad tiene herencia, la entidad que hereda debe tener un atributo que no se repita en las otras entidades hijas.
Si se repite entre dos, se trata de la misma entidad con un valor dIferenciador de identidad, pero no de dos entidades.
Se trata en definitiva de una clase primaria propiedades y dos tablas dependientes cuya PK es FK de la tabla primaria:

PROPIEDADES(propiedad_id, tipo, direcicon ,barrio, precio)
DEPARTAMENTO(propiedad_id, tipo_edificio, categoria, cant_pisos)
OFICINA(propiedad_id, recepcion, despachos, sala_reuniones)
__________________
¿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 19/10/2009, 12:37
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Duda de diseño

Muchisimas gracias gnzsoloyo =)
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 11/11/2009, 10:55
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Respuesta: Duda de diseño

Revivo este tema porque me ha surgido otra duda sobre el mismo problema.

Tomando como ejemplo lo propuesto por gnzsoloyo:

PROPIEDADES(propiedad_id, tipo, direcicon ,barrio, precio)
DEPARTAMENTO(propiedad_id, tipo_edificio, categoria, cant_pisos)
OFICINA(propiedad_id, recepcion, despachos, sala_reuniones)

¿Se podría realizar un listado que mezclara propiedades de tipo departamento con las de tipo oficina, mostrando en cada caso los campos correspondientes a cada tipo de propiedad? Ejemplo:


Propiedad 1, tipo Departamento
direccion: Calle 144
Barrio: Palermo
Precio: 500.000
Tipo Edificio: Alto
Categoria: Lujoso
Cantidad de pisos: 6


Propiedad 2, tipo Oficina
direccion: Calle 184
Barrio: Tribunales
Precio: 30.000
Recepcion: Si
Despachos: 4
Sala de reuniones: Si


Propiedad 3, tipo Departamento
direccion: Calle 204
Barrio: San Nicolás
Precio: 250.000
Tipo Edificio: Alto
Categoria: Lujoso
Cantidad de pisos: 16



Muchísimas gracias nuevamente,
Federico.
__________________
Federico.

Mi página: www.jourmoly.com.ar

Última edición por Fridureiks; 11/11/2009 a las 11:06
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 05:19.