Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2011, 04:40
gsanlab
 
Fecha de Ingreso: diciembre-2010
Mensajes: 8
Antigüedad: 13 años, 4 meses
Puntos: 0
Pregunta Optimizar diseño de base de datos

Tengo la opción de asignar alguna categoría a una serie de elementos de una base de datos. Pongo un ejemplo para ilustrar:

En una tabla tengo una lista de coches. A cada uno de estos coches les quiero asociar una serie de características que se encuentran codificadas en una segunda tabla (como el color (rojo, amarillo, verde,...), tipos de asientos (cuero, tela, ...) ...).

Cada coche puede tener desde ninguna a varias de estas categorías.

Con una base de datos mysql se puede hacer:

Opción 1: se crea una nueva tabla en la que se relacione un identificador (único) del coche con un identificador (único) de la categoría en cada fila. Luego, ya podremos unir las tablas a la hora de consultar las categorías de un determinado coche (usaríamos las cláusulas INNER JOIN o LEFT JOIN).

Opción 2: En la tabla de coches, creo un campo en el que pongo los identificadores de las categorías asociadas a dicho coche, separados por algún símbolo. Para hacer las consultas en este sistema usaría la cláusula LIKE. En esta opción, me ahorro hacer una tabla intermedia (la creada en la opción 1)

He probado ambos métodos y ambos funcionan, pero, me pregunto ¿cual es más eficiente con una gran cantidad de datos (muchos coches, muchas categorías) a la hora de realizar consultas, en este caso, las categorías de un determinado coche?

Gracias.