<div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div class="h5">Hola Gerardo!<br>
<br>
seguro que hay una solución normalizada para esto.<br>
Con el asunto de que la normalización sigue a un modelo<br>
matemático, todo conjunto de datos es normalizable.<br>
<br>
Para normalizarlo, tenés que partir de la lista de todas las<br>
cosas a guardar: tenés esa lista armada???<br></div></div></blockquote><div><br>No. No tengo esa lista. Con lo cual, me doy cuenta que quiero hacer algo que es imposible. El problema es que ni el cliente conoce todos sus productos.<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div class="h5">
<br>
Las tablas resultantes dependen únicamente de los datos a<br>
guardar...<br>
<br>
Generalmente esas soluciones para el caso que planteás, en el<br>
peor escenario, quedan de la forma:<br>
<br>
Artículos:<br>
id<br>
cod<br>
des<br>
<br>
Atributos:<br>
id<br>
atributo<br>
<br>
AtributosArticulos:<br>
id<br>
id_articulo<br>
id_atributo<br>
medida<br>
<br>
... es decir, una relación muchos a muchos entre los Artículos y<br>
sus Atributos.<br>
Fijate que ahora para el atributo "largo" usado en el tornillo,<br>
pondrás los mm de la longitud, y para el atributo "apertura" usada en la<br>
pinza pondrás cuanto abre.<br></div></div></blockquote><div><br>Que sencillo! No me habia dado cuenta.<br>Pero me surgen dos problemas:<br>* Algunos valores necesito normalizarlos tambien. Por ejemplo: si estoy cargando los destornilladores, solo quiero que carguen de tipo paleta o de tipo phillip. Y que no me carguen chato, comun, de cruz... o lo que se lo ocurrio al chango en ese momento. Para esto se me ocurrio agregar otra tabla "valores" con los campos: id, valor. Y cambiar en la tabla AtributosArticulos el campo medida, por id_valor.<br>
* Con esta normalizacion el campo medida o valor, sera siempre del mismo tipo, varchar. Creo que seria el mas adecuado. No podre variar con integer, float, etc. En si, en la gran mayoria de los atributos, no voy a hacer calculos. Por lo que el tipo varchar creo que estaria bien. Que opinan al respecto?<br>
<br>Por otro lado, tengo algunos atributos que comparten todos. Como la marca, el origen, packaging y contenido. Todos ellos los pongo en la tabla Articulos? O que se graben igual que aquellos atributos que no comparten, es decir usando la tablas Atributos? <br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div class="h5">
<br>
Luego, las interfaces con el usuario de las relaciones muchos a<br>
muchos son un fastidio, pero esa es otra historia.<br>
<br>
Por otra parte, esto no tiene nada, pero nada que ver con el<br>
</div></div>modelo de Objetos que uses, que sé que es el paradigma con el cuál estás<br>
diseñando esto.<br>
<div class="im"> Una ventaja de modelar esto en objetos que podés poner las<br>
unidades de medida como parte de las reglas de negocio y validarlas, en<br>
lugar de necesitar una tabla más, porque, mi querido Gerardo, esto<br>
requiere un Objeto por cada Atributo, que posiblemente sean todos de la<br>
misma clase o al menos tengan un ancestro cercano en común.<br></div></blockquote><div><br>Por el momento no me sente a diseñar los objetos referentes a los productos.<br><br>Saludos y gracias!<br></div></div>