Hola Leo, te paso las correcciones hechas con los detalles que me pediste.<br>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>Normalización</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#departamentos</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_depto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">depto_nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#categorias</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_categoria</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#insumos</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_producto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_categoria</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">imagen</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#RemitosAltaStock</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_remito_alta</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">fecha</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#RemitosAltaStockDetalle</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_alta_detalle</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_remito_alta</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_producto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">cantidad</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#RemitosBajaStock</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_remito_baja</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">fecha</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#RemitosBajaStockDetalle</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_baja_detalle</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_remito_baja</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_producto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">cantidad</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">motivo</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#solicitudes</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_solicitud</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_depto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">depto_nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_estado</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_remito_baja</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">fecha_inicio</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">fecha_fin</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">problema</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">solucion</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#solicitudesDetalles</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">Id_solicitud_detalle</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">Id_solicitud</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">Id_producto</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">nombre</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">cantidad</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"> </p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal"><b style>#estados</b></p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">id_estado</p>
<p class="MsoNormal" style="margin-bottom:0cm;margin-bottom:.0001pt;line-height:normal">estado</p>
<br><br><br><br><div class="gmail_quote">El 6 de julio de 2012 00:32, Leonardo Tadei - Pegasus Tech Supply <span dir="ltr"><<a href="mailto:leonardot@pegasusnet.com.ar" target="_blank">leonardot@pegasusnet.com.ar</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hola David,<br>
<br>
<br>
El jue, 05-07-2012 a las 15:44 -0300, David Barraud escribió:<br>
<div class="im">> Bien, entonces me faltaría una tabla en #solicitudes que me guarde los<br>
> insumos que se usan para cada solicitud<br>
<br>
</div> Me parece que decís bien, pero por las dudas lo vuelvo a expresar acá:<br>
las Solicitudes normalizadas quedan en dos tablas, una con la "cabecera"<br>
de la solicitud, y otra con el "detalle" en dónde constan los insumos.<br>
<br>
Si te fijás, los comprobantes de altas y de bajas son casi iguales,<br>
salvo que la "cabecera" es más chica (y los de baja tienen el motivo<br>
como parte de los detalles).<br>
<div class="im"><br>
> y el cálculo del stock de los insumos sería la sumatoria de las Alta<br>
> de Stock - baja de stock - baja de stock en las solicitudes.<br>
<br>
</div> Correcto!<br>
<div class="im"><br>
> Si estoy en lo correcto decime si estas tablas quedarían de esta<br>
> manera:<br>
<br>
</div> Mmm... más o menos así. La idea está bien, pero te falta pulir un par<br>
de detalles:<br>
<br>
1) Los nombre de las tablas en plural, y lo de los campos en singular.<br>
Parece una pavada pero es de veras importante para no confundirte.<br>
2) Si tenés id_depto, como tu RF1 dice que se gestionan, tenés que<br>
guardar acá el nombre del departamento, porque si después se cambia o se<br>
borra, no tenés que cambiar las Solicitudes ya generadas.<br>
Nota: No pasa lo mismo con id_estado, porque no se gestiona.<br>
3) La tabla de detalles se ve bien. A nivel de nomenclatura, es un poco<br>
confuso porque el "remito" es la solicitud entera, así que uno esperaría<br>
que la palabra "remito", si está, esté en la primer tabla. Si una tabla<br>
se llama "Solicitudes", la otra podría llamarse algo como<br>
"SolicitudesDetalles" o "SolicitudesItems", es decir un nombre que<br>
denote que depende de la primera y que no tiene sentido sin ella.<br>
Yo empiezo todo con "Solicitudes...", pero esto es de viejo mañoso,<br>
porque después el ver las tablas alfabéticamente se ven juntas las<br>
relacionadas, y no con otras tablas en el medio, pero sería un nombre<br>
más correcto "ItemsSolicitud" o "DetallesSolicitud"... más correcto pero<br>
incómodo.<br>
Mientras sea claro y explícito, llamalas como quieras. Que una diga<br>
"Remito" y la otra no, desentona, pero no es que en nombres de tablas o<br>
de campos haya cosas "mal" si son representativas.<br>
<br>
Saludos!<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> #solicitudes<br>
><br>
> id_solicitudes<br>
><br>
> id_depto<br>
><br>
> id_estado<br>
><br>
> fecha_inicio<br>
><br>
> fecha_fin<br>
><br>
> problema<br>
><br>
> solución<br>
><br>
><br>
><br>
> #RemitoBajaStockSolicitudes<br>
><br>
> id_baja_solicitudes<br>
><br>
> id_solicitudes<br>
><br>
> id_producto<br>
><br>
> nombre<br>
><br>
> cantidad<br>
><br>
><br>
> Muchas gracias!<br>
><br>
><br>
><br>
> El 5 de julio de 2012 01:09, Leonardo Tadei - Pegasus Tech Supply<br>
> <<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a>> escribió:<br>
> Hola David,<br>
><br>
> El mié, 04-07-2012 a las 17:53 -0300, David Barraud escribió:<br>
> > Hola Leo, ya voy entendiendo mejor lo de los remitos, vamos<br>
> a la parte<br>
> > de dar de baja el stock del insumo.<br>
><br>
><br>
> Veamos!<br>
><br>
> > Voy a tener 2 mecanismos para dar de baja el stock:<br>
> > 1. cuando se rompe o se tira algún insumo.<br>
> > 2. Cuando se usa algún insumo en la solución de la solicitud<br>
> de<br>
> > trabajo.<br>
><br>
><br>
> Ok.<br>
><br>
> > En el primer caso las tablas serían similares al remito de<br>
> Alta de<br>
> > Stock, salvo que se agregaría un campo con el motivo de su<br>
> baja.<br>
><br>
><br>
> Estoy de acuerdo.<br>
> En este caso, agregá al diccionario del remito de baja<br>
> el "motivo".<br>
><br>
> > En el segundo caso la solicitud generaría un nuevo remito de<br>
> baja del<br>
> > stock. Estoy en lo correcto?<br>
><br>
><br>
> Es más simple!<br>
> La Solicitud de Reparación _es_ un comprobante de<br>
> baja, y en su<br>
> cabecera tiene todos los datos de la Solicitud...<br>
><br>
> De la misma forma por ejemplo, en un sistema<br>
> comercial, el remito de<br>
> compra tendrá en su cabecera todos los datos del proveedor, el<br>
> nro de<br>
> remito, la fecha en que fue emitido, etc.<br>
><br>
> Vos estás pensado en que la Solicitud genere un nuevo<br>
> comprobante de<br>
> baja, pero esto es más complicado, porque tendrías que<br>
> discriminar los<br>
> comprobantes según por dónde vienen para por ejemplo hacer un<br>
> informe de<br>
> los insumos usados (y no de los tirados).<br>
> Pero lo más importante no es que es más complicado,<br>
> sino que sería un<br>
> artificio que no refleja la realidad. La realidad sería<br>
> imaginarte como<br>
> sería esto si tuvieras que hacer comprobantes en papel para<br>
> reflejar<br>
> cada movimiento de stock... llegarías sin dudas a tener tres:<br>
> el remito<br>
> de alta (posiblemente incluyendo el proveedor por las<br>
> garantías), el<br>
> remito de baja por roturas en dónde en cada item habría lugar<br>
> para poner<br>
> el motivo, y la solicitud de reparación, que tendría una<br>
> cabecera más<br>
> grande y algunos renglones en blanco para poner los insumos<br>
> que se usan,<br>
> si es que se usan.<br>
><br>
> Cómo lo ves a la luz de esto que te cuento?<br>
><br>
><br>
><br>
> > Si todo esto es correcto te paso la nueva normalización a<br>
> ver qué<br>
> > opinás.<br>
> ><br>
> ><br>
> > Normalización<br>
> ><br>
> > #departamentos<br>
> ><br>
> > id_depto<br>
> ><br>
> > nombre<br>
> ><br>
> ><br>
> ><br>
> > #categorias<br>
> ><br>
> > id_categoria<br>
> ><br>
> > nombre<br>
> ><br>
> ><br>
> ><br>
> > #insumos<br>
> ><br>
> > id_producto<br>
> ><br>
> > id_categoria<br>
> ><br>
> > imagen<br>
> ><br>
> > nombre<br>
> ><br>
> ><br>
> ><br>
> > #RemitoAltaStock<br>
> ><br>
> > id_remito_alta<br>
> ><br>
> > fecha<br>
> ><br>
> ><br>
> ><br>
> > #RemitoAltaStockDetalle<br>
> ><br>
> > id_alta_detalle<br>
> ><br>
> > id_remito_alta<br>
> ><br>
> > id_producto<br>
> ><br>
> > nombre<br>
> ><br>
> > cantidad<br>
> ><br>
> ><br>
> ><br>
> > #RemitoBajaStock<br>
> ><br>
> > id_remito_baja<br>
> ><br>
> > fecha<br>
> ><br>
> ><br>
> ><br>
> > #RemitoBajaStockDetalle<br>
> ><br>
> > id_baja_detalle<br>
> ><br>
> > id_remito_baja<br>
> ><br>
> > id_producto<br>
> ><br>
> > nombre<br>
> ><br>
> > cantidad<br>
> ><br>
> > motivo<br>
> ><br>
> ><br>
> ><br>
> > #solicitudes<br>
> ><br>
> > id_solicitudes<br>
> ><br>
> > id_depto<br>
> ><br>
> > id_estado<br>
> ><br>
> > id_remito_baja<br>
> ><br>
> > fecha_inicio<br>
> ><br>
> > fecha_fin<br>
> ><br>
> > problema<br>
> ><br>
> > solución<br>
> ><br>
> ><br>
> ><br>
> > #estados<br>
> ><br>
> > id_estado<br>
> ><br>
> > estado<br>
> ><br>
> ><br>
> ><br>
> > En la tabla solicitudes el campo id_remito_baja sería un<br>
> campo nulo ya<br>
> > que en el caso de que la solicitud de trabajo no necesite<br>
> insumos para<br>
> > solucionar el problema, no es necesario generar un remito de<br>
> baja de<br>
> > insumo por lo que este campo no tiene ningún dato.<br>
><br>
> > _______________________________________________<br>
> > Php-avanzado mailing list<br>
> > <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> ><br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
> --<br>
> Leonardo Tadei<br>
> <a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
> Blog: <a href="http://blog.pegasusnet.com.ar" target="_blank">http://blog.pegasusnet.com.ar</a><br>
> Firma pública:<br>
> <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
><br>
> _______________________________________________<br>
> Php-avanzado mailing list<br>
> <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
><br>
><br>
> _______________________________________________<br>
> Php-avanzado mailing list<br>
> <a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
> <a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
<br>
--<br>
Leonardo Tadei<br>
<a href="mailto:leonardot@pegasusnet.com.ar">leonardot@pegasusnet.com.ar</a><br>
Blog: <a href="http://blog.pegasusnet.com.ar" target="_blank">http://blog.pegasusnet.com.ar</a><br>
Firma pública: <a href="http://www.pegasusnet.com.ar/LeonardoTadei-public.key" target="_blank">http://www.pegasusnet.com.ar/LeonardoTadei-public.key</a><br>
<br>
_______________________________________________<br>
Php-avanzado mailing list<br>
<a href="mailto:Php-avanzado@pato2.fi.mdp.edu.ar">Php-avanzado@pato2.fi.mdp.edu.ar</a><br>
<a href="http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado" target="_blank">http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado</a><br>
</div></div></blockquote></div><br>