Hola a todos/as
Me gustaria que me aconsejarais en la forma de hacer un proyecto. Estoy metido en un proyecto para una inmobiliaria en el que el usuario puede meter las caracteristicas que quiera para los inmuebles. Entonces, tengo una tabla FINCA que tiene las caracteristicas generales que tienen que tener todos los inmuebles y luego quiero hacer otra tabla que almacene las caracteristicas opcionales (aire acondicionado, alarma, ascensor...). Para hacer esto he pensando 2 formas
de hacerlo:
1- Hago 2 tablas, la de FINCA y la de caracteristicas. La tabla FINCA tiene idfinca como identificardor y la tabla caracteristicas tiene el idcaract y el idfinca. La particularidad de esta tabla es que se añadira una columna cada vez que se añada una caracteristica, es decir, si por ejemplo el usuario añade como caracteristica nueva PISCINA quedaria asi
idcaract | idfinca | Alarma | Piscina |....
1 | 2 | Si |
2 | 5 | | Si
. | . | . | .
. | . | . | .
Cada vez que se añade una caracteristica se añade una columna nueva con la siguiente sentencia
mysql_db_query($base,"alter table caracteristicas add '$nueva' varchar(2)");
Y si el usuario quiere dar de baja una caracteristica haria la misma sentencia pero con DROP
2- La segunda opcion es haciendo 3 tablas. La tabla Finca igual que la anterior mencionada, la tabla caracteristicas que almacenara solo el nombre de la caracteristica y su identificador, y una tabla que una las 2 anteriores que seria caract_finca con los identificadores de finca y de caracteristicas. Quedaria por ejemplo asi
idcaract_finca | idfinca | idcaract |
1 | 2 | 3
2 | 2 | 5
3 | 4 | 3
4 | 4 | 1
Lo malo que le veo a esta ultima forma es que si hay muchas caracteristicas y muchas casas, la base de datos se puede hacer muy pesada, no???
Siento el pedazo rollo que les acabo de soltar pero espero que me hayan entendido y me sepan aconsejar.
Muchas gracias
PD: Si ninguna de las 2 formas es la correcta asesorenme con una mejor por favor