Ver Mensaje Individual
  #16 (permalink)  
Antiguo 02/03/2005, 21:59
un_tio
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 11 meses
Puntos: 6
Cita:
Iniciado por jpinedo
No entiendo muy bien... ¿podrías poner un ejemplo?
Quedaría esto, modificando la tabla que tú pusiste:

+ INMUEBLE:
----------
- id_inmueble (PK)
- provincia (campo común a todos)
- precio (campo común)
- más campos comunes.


Y luego, para un caso concreto como PISO:

+ PISO:
-----
- id_piso (PK) (FK)
- campo propio 1
- Más campos propios


¿Se entiende? PISO, ÁTICO, etc., compartirían el mismo "autonumérico". Te ahorras el campo de "tipo_inmueble", pues poniendo la id, ya sabes si es piso, ático, etc., pues no hay dos id's iguales entre estas tablas. Yo creo que la esencia de las clases (subclases, etc.) es así, aunque la verdad es que puede resultar más complicado de programar.



__________________________________________________ ____________
Cambiando a otra cosa:

Otra opción, usando tu forma, podría ser:

(SEGUNDA FORMA DE HACERLO)

+ INMUEBLE:
----------
- id_inmueble (PK) (FK)
- tipo_inmueble (PK)
- provincia (campo común a todos)
- precio (campo común)
- más campos comunes.

Y en "tipo_inmueble", poner el nombre de la tabla del inmueble (por ejemplo: "piso", etc. Me gustaría saber si existe algo parecido a "Foreign key" pero que apunte no hacia un campo, sino hacia el título de otra tabla).

La verdad es que esta segunda forma puede resultar liosa si se intenta lo del foreign key (si no no, es simplemente coger un nombre, da igual que sea eltítulo de otra tabla o no).



__________________________________________________ ____________

Otra cosa, TERCERA FORMA:

Esto me lo aconsejó Vice: consistiría en hacer "los prototipos" de las tablas, con características comunes, por un lado, y por el otro, la serialización (o poner id's de elementos concretos).

Sería algo así como definir las características de un PISO_MODELO1, tener una tabla con estas características definidas, y después que cada piso concreto apuntara a ello (se supone que ahorraríamos memoria).

Lo otro que dice Vice, que ya me lo dijo en otro tópic, de crear una tabla donde se van añadiendo nuevas características, no creo que sea la mejor opción... la verdad es que puede resultar, pero no parece para nada una base de datos bien estructurada, y no sé si más adelante podría resultar lioso.