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