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

Optimizar diseño de base de datos

Estas en el tema de Optimizar diseño de base de datos en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 04/02/2011, 04:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 8
Antigüedad: 14 años
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.

Etiquetas: eficiencia
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 13:53.