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

Listado de productos segun los check marcados

Estas en el tema de Listado de productos segun los check marcados en el foro de Mysql en Foros del Web. Hola amigos a ver si me pueden ayudar con esta duda que tengo: Necesito crear una bbdd para una tienda de productos de comestibles, es ...
  #1 (permalink)  
Antiguo 08/07/2015, 12:47
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Listado de productos segun los check marcados

Hola amigos a ver si me pueden ayudar con esta duda que tengo:

Necesito crear una bbdd para una tienda de productos de comestibles, es decir son muchos productos y variados.

Mi intencion es para que la gente encuentre los productos, chequeando previamente unos checkboxs , es decir:

check verdura, check pescado , check carne etc.
y al dar al boton enviar , se mostrarian los productos de esos checks marcados.

Para ello he pensado en enfocarlo de dos maneras diferentes pero no se cual es la mas efectiva esa es mi duda la cual me gustaria que me aconsejaran cual seria la mas optimizada , profesional y flexible para futuras modificaciones.


Por un lado he pensado en hacer varias tablas cada una de ellas dedicada ,a fruta, otra verdura, otra carnes, otra pescado, etc...


Y por otro lado he pensado en la posibilidad en hacer una tabla única con todos los productos mezclados pero en cada producto habría un campo en el cual se especificara si es carne, pescado , verdura etc.

gracias de atemano.
  #2 (permalink)  
Antiguo 08/07/2015, 13:11
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Listado de productos segun los check marcados

Hola mensajeescrito:

Desafortunadamente (o afortunadamente) no hay una mejor o peor forma de hacer un modelo de BD's, este dependerá por completo de tus necesidades y Reglas de negocio, sin embargo hay algunos puntos que te pueden servir para determinar qué modelo o qué objetos de BD's necesitas para armar tu modelo.

La razón principal para usar más de una tabla está en que te preguntes QUÉ INFORMACIÓN NECESITAS ALMACENAR DE CADA PRODUCTO... si la información es la misma para todos los productos, entonces si puedes optar por un solo catálogo.

Sin embargo, si hay información que te interesa guardar y que no poseen todos los productos, entonces lo correcto es almacenar esta información en otra tabla. Suena algo confuso??? igual y con un ejemplo te puede servir.

Supongamos que tienes dos productos a mostrar, (frutas-verduras y lacteos)

ahora bien, para las frutas en realidad no hay mucha información que puedas almacenar, tendría una lista más o menos así:

Código:
1-Manzanas
2-Piña
3-Zanahoria
4- Papa
...
etc.

hasta aquí no suena muy complicado, pero qué pasa con los lácteos, aquí puede haber más variedad, presentaciones, marcas, tipos, etc... si haces un listado por ejemplo de Leche, tendrías algo como esto:

Código:
1. Leche Entera, marca X, presentación 1 litro.
2. Leche Entera, marca X, presentación 1/2 galón.
3. Leche Entera, marca Y, presentación 1 galón.
4. Leche Entera, marca Y, presentación 1 litro.
5. Leche Entera, marca X, presentación 1/2 galón.
6. Leche Entera, marca X, presentación 1 galón.
7. Leche Deslactosada, marca X, presentación 1 litro.
8. Leche Deslactosada, marca X, presentación 1/2 galón.
9. Leche Ligth, marca Z, presentación 1 galón.
...
y así un muy largo etcétera... que pasa entonces, la CLASIFICACIÓN y la BÚSQUEDA de un producto en específico puede resultar un tanto compleja. Si clasificas TODOS ESTOS PRODUCTOS SIMPLEMENTE COMO LECHE, entonces puede darse el caso de que muestres demasiados productos y el cliente no encuentre lo que realmente necesitas, entonces podrías optar por otra clasificación más compleja:

En este simple ejemplo y si somos "puristas" en la teoría de modelado de BD's, se indica que si algún atributo puede repetirse en más de un registro, debes convertirlo en un catálogo y manejar una llave foránea, así es que continuando con el ejemplo de la leche ya nos daría varias posibles tablas:

1. Tipos de leche J(Entera, Deslactosada, Ligth, etc).
2. Marcas de Leche (X, Y, Z.)
3. Presentaciones (1 litro, 1/2 galón, 1 galón, etc).

y así podríamos continuar. de esta manera, el cliente podría ser más específico en su búsqueda y decir por ejemplo que necesita Leche de tipo ENTERA y de la marca X, por lo tanto el resultado a mostrar serán menos registros.

Creo que se entiende el problema verdad??? de aquí vuelvo al punto inicial en que en realidad no hay una mejor o peor forma de hacer las cosas. Simplemente determina qué es lo que quieres almacenar de información de cada producto, cómo harás las búsquedas o la selección de estos productos, y eso te dará un acercamiento a lo que tienes que modelar.

Saludos
Leo.
  #3 (permalink)  
Antiguo 09/07/2015, 02:48
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Respuesta: Listado de productos segun los check marcados

Gracias por tus aclaraciones, creo que me ha quedado mas claro ahora.

La duda la tengo en como hacer la bbdd si mi objetivo es hacer un menu que seleccionando previamente unos check box aparezcan unos productos u otros.

Independientemente si cada producto necesita mas o menos campos segun fuera leche o fruta.

Solo centrandome en como digo marcando unos check box que salgan unos productos u otros.

en este sentido que seria mas idoneo una tabla con todos los productos o varias tablas.

a eso me refiero.

dariamos por sentado que todos los productos tendrian : id, caracteristicas, peso, color por ejemplo.
  #4 (permalink)  
Antiguo 09/07/2015, 12:14
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Listado de productos segun los check marcados

Hola de nuevo mensajeescrito:

Vayamos por partes... no debes de confundir ni mezclar la lógica de programación con la lógica de datos... son cosas completamente distintas... el que hables de CHECK BOX es un concepto de programación que en nada debería influir para tu modelo de BD's... son cosas completamente independientes.

Es un error típico de los programadores hacer un modelo de BD's para "facilitar" la programación, cosa que no debiera ser... pero si hablamos de esto, de hacer "fácil" la programación, lo más simple es que tengas una sola tabla, de esta manera para armar una consulta haces algo como esto:

Código MySQL:
Ver original
  1. FROM tu_tabla
  2. WHERE tipo_producto IN (aquí_pones_la_lista_de_los_checks_seleccionados)

Esto es lo más fácil desde el punto de vista del programador... insisto, esto no quiere decir que esté bien o que este mal...

Continuando con el ejemplo que ponía en el otro post, imagina ahora que tienes varias tablas, una para frutas y verduras, otra para lácteos y otra para ropa, cada una de ellas con información distinta, para mostrarle al cliente una UNICA vista de los productos, podrías armar una consulta dinámica, haciendo un UNION, es decir, algo como esto:

Código:
consulta = ""

SI combo de frutas ESTA SELECCIONADO ENTONCES
consulta = consulta + "SELECT * FROM tabla_frutas UNION"

SI combo de ropa ESTA SELECCIONADO ENTONCES
consulta = consulta + "SELECT * FROM tabla_ropa UNION"

SI combo de LACTEOS ESTA SELECCIONADO ENTONCES
consulta = consulta + "SELECT * FROM tabla_lacteos UNION"
...
...
en este ejemplo debes tener cuidado de eliminar la última palabra UNION, para que te quede una consulta SQL válida.

Hay muchas otras formas de abordar este problema, tanto desde el punto de vista de programación como de BD's. cualquiera de ellas es perfectamente válida

Saludos
Leo.

Etiquetas: campo, listado, productos, tabla
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:59.