[Php-avanzado] Normalizar MUCHOS productos

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Dom Jul 11 19:26:39 ART 2010


Hola Gerardo!

        seguro que hay una solución normalizada para esto.
        Con el asunto de que la normalización sigue a un modelo
matemático, todo conjunto de datos es normalizable.

        Para normalizarlo, tenés que partir de la lista de todas las
cosas a guardar: tenés esa lista armada???

        Las tablas resultantes dependen únicamente de los datos a
guardar...

        Generalmente esas soluciones para el caso que planteás, en el
peor escenario, quedan de la forma:

Artículos:
id
cod
des

Atributos:
id
atributo

AtributosArticulos:
id
id_articulo
id_atributo
medida

        ... es decir, una relación muchos a muchos entre los Artículos y
sus Atributos.
        Fijate que ahora para el atributo "largo" usado en el tornillo,
pondrás los mm de la longitud, y para el atributo "apertura" usada en la
pinza pondrás cuanto abre.

        Luego, las interfaces con el usuario de las relaciones muchos a
muchos son un fastidio, pero esa es otra historia.

        Por otra parte, esto no tiene nada, pero nada que ver con el
modelo de Objetos que uses, que sé que es el paradigma con el cuál estás
diseñando esto.
        Una ventaja de modelar esto en objetos que podés poner las
unidades de medida como parte de las reglas de negocio y validarlas, en
lugar de necesitar una tabla más, porque, mi querido Gerardo, esto
requiere un Objeto por cada Atributo, que posiblemente sean todos de la
misma clase o al menos tengan un ancestro cercano en común.

        Saludos!




El dom, 11-07-2010 a las 13:18 -0300, Gerardo Valiani escribió:
> Gente, necesito ayuda!
> 
> 
> Les escribo porque tengo un problema. Tengo que normalizar una DB para
> cargar productos. El problema que tengo es que los atributos de los
> productos varían demasiado entre si. Imaginate una ferretería. Tratar
> de poner en una misma tabla los tornillos, con una pinza. Para los
> tornillos me interesaría guardar el largo, el ancho, el material de
> fabricacion, etc. Pero para la pinza me interesa, el tipo de pinza, la
> abertura, el tipo de punta, etc. Como meto productos tan diferentes en
> una misma tabla?!
> 
> 
> Pensé en tener una tabla por cada tipo de productos, pero no me
> convence al momento de hacer una query sobre todos mis productos. Por
> ejemplo cuando busco algo. 
> 
> 
>  Ya hay una solución para este problema?
> 
> 
> Saludos y gracias!
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado