30/12/2009, 04:37
|
| | | Fecha de Ingreso: septiembre-2008 Ubicación: Tacna
Mensajes: 36
Antigüedad: 16 años, 4 meses Puntos: 0 | |
Respuesta: ¿Como harias esto para que se lo mas optimo? Hola altairon espero responder bien tu pregunta, quizás sea algo extenso, espero comprendas pero es bajo una óptica holística, una de las bases de la ingeniería de sistemas. :P
Primero vamos a definir los conceptos de las 3 e's (eficacia, eficiencia y efectividad) en resumen: Eficacia: Simplemente lograr la meta así consumas todos los recursos que tengas Eficiencia: Hacer bien las cosas nada más así llegues o no llegues a la meta propuesta. Efectividad: Sinergia de eficacia y eficiencia, algo así como ser las dos cosas al mismo tiempo (por si acaso es mucho más que ser las dos cosas al mismo tiempo pero por cuestiones prácticas mejor definirlo asi), ahi está es como el cubo horádrico de diablo 2 si es que haz jugado no sé, donde metes una poción de mana y otra de vida y mas una joya sin daños creo y te sale una poción de rejuvenecimiento creo jaja no recuerdo :P.
Trasladando estos conceptos a tu pregunta mas o menos quedaría así (o algo así :P) Eficacia: Deja cada tabla con su respectiva galeria :P, quizás sea más rápido pero el mantenimiento de cada tabla sería más complicado a futuro. Eficiencia: Normaliza las tablas lo más que puedes porque asi dice la teoría porque por algo es, si no, un auditor viene y te acusa de mal DBA y aquí en foros del web te vamos a mirar mal jaja (no mentira). Quizás sea más lento, pero es seguro. Efectividad: Si tu servidor de BD es rapido, normaliza lo mas que puedas para que el servidor de BD pueda tolerar consultas que usualmente en tablas normalizadas son de filtrado lo que agrega mas consumo de servidor, indexa los campos importantes de los que te basas para hacer consultas, y si es lento, entonces bueno separalos y deja a cada tabla con su respectiva galeria, luego cuando proceses los datos procurarías hacerlo en el servidor de lógica de negocio o el que haga las veces de él. Y si está en un servidor, bueno entonces bla bla bla bla.... :P
Como habrás notado, surgen varias tomas de decisiones en función a la información que tienes a la mano, en este caso yo la estoy suponiendo porque no se nada de tu plataforma tecnológica, y quizás existan muchas más variables que estén involucradas y redefinan la decisión que vayas a tomar. Nota:
Tanto el eficaz como el eficiente siempre se niegan a conocer información de sus lados opuestos (por decirlo asi) en cambio una peculiaridad de la efectividad y que se distingue de las demás es que para lograrla se necesita conocer toda la información involucrada en algo y sinergizarla (horadrizarla por decir) y ser altamente inteligente y ágil, en otras palabras debes saber no sólo de normalización, sino la arquitectura de tu plataforma tecnológica y su capacidad, y hatsa quizás mucho más conocimiento del que tengas que relacionar u horadrizar; a veces normalizar demanda demanda un tiempo que tu cliente no puede esperar y que lograrías satisfacerlo si hicieras una base de datos como sea; para que cuando ya empiece a dar errores la base de datos, la tengas que correjir con quien sabe cuantos registros agregados... entonces que prefieres hacer, el primero o el segundo, o la sinergia de ambos? ya eso con experiencia podrás definir este tercer camino.
Bueno eso es todo, ahora respondiendo tu pregunta de manera reduccionista que es la base de los científicos y como verás no voy a considerar ninguna otra variable que no sea sólo lo de la base de datos, pues respetando las formas normales lo más óptimo es que normalices lo más que puedas sin mucha obligación claro, yo lo haría así:
Tabla Usuario(Aqui va todos los campos asociados al usuario)
Tabla ProductosyServicios (Aqui va lo que tienen en comun productos y servicios como nombre y precio)
Tabla Productos (Aqui va lo que no tiene en comun con servicio como stock, marca)
Tabla Servicios (Aqui va lo que no tiene en comun con producto como disponibilidad, tiempo de duracion de servicio)
Tabla Galeria (Aqui vienen las llaves de usuario y productoyservicio)
Tabla Imagenes (Aqui viene la llave de galeria y las distintas imagenes correspondientes).
Quedaria algo asi ojala no se descuadre
Usuario----------------------------Galeria ---------Imagenes
Producto------ ProductoyServicio ________|
Servicio___________|
Eso es todo :P
Saludos |