[Php-avanzado] Normalización

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Jul 11 23:01:27 ART 2012


Hola David,

	técnicamente hablando, MyISAM puede coexistir con INNOdb. El server de
la FI soporta estos formatos y varios más también.
	No hay diferencia a la hora de escribir las consultas.

	INNOdb soporta características tales como store procedures, triggers,
integridad referencia, y claves foráneas.
	En el curso no se llegan a ver estos temas, así que si vos no usás
esto, podría ser sin problemas todo MyISAM. El formato MyISAM al
soportar menos características, es ligeramente más rápido.

	Así en general y por prolijidad, lo mejor es que todas las tablas estén
en el mismo formato

	Seguimos!

El mié, 11-07-2012 a las 20:34 -0300, David Barraud escribió:
> Hola Leo, te hago una consulta que no me surgió cuando te escribí hace
> un rato. 
> El otro día actualicé el Mysql y phpmyadmin, de paso cambiaron la
> apariencia del phpmyadmin y está muy buena y es más fácil de trabajar.
> Lo que me queda la duda es que anteriormente las tablas con las que
> trabajé fueron creadas con MyISAM y las nuevas las está creando con
> innoDB. 
> Necesito saber si es mejor trabajar con una, con la otra o
> coexistiendo ambas.
> Estube leyendo sobre las ventajas y desventajas de ámbos pero quiero
> saber si en el servidor de la universidad corren las dos.
> Por lo pronto estoy dejando a todas las tablas con MyISAM.
> Muchas gracias
> 
> El 10 de julio de 2012 17:31, Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar> escribió:
>         Hola David,
>         
>                 te respondo intercalado:
>         
>         El dom, 08-07-2012 a las 15:19 -0300, David Barraud escribió:
>         > 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
>         
>         
>         
>                 Hasta acá está bien.
>         
>         > #solicitudes
>         >
>         > id_solicitud
>         >
>         > id_depto
>         >
>         > depto_nombre
>         >
>         > id_estado
>         >
>         > id_remito_baja
>         
>         
>                 El campo id_remito_baja es incorrecto. La Solicitud de
>         reparación no
>         tiene que hacer referencias al Remito de Baja.
>                 La propia Solicitud de Reparación _es_ la baja de los
>         insumos usados.
>         
>         > fecha_inicio
>         >
>         > fecha_fin
>         >
>         > problema
>         >
>         > solucion
>         >
>         >
>         >
>         > #solicitudesDetalles
>         >
>         > Id_solicitud_detalle
>         >
>         > Id_solicitud
>         >
>         > Id_producto
>         >
>         > nombre
>         >
>         > cantidad
>         >
>         >
>         >
>         > #estados
>         >
>         > id_estado
>         >
>         > estado
>         
>         
>                 El resto está bien.
>                 Te falta(n) la(s) tabla(s) para implementar los RNF
>         
>                 No queda constancia de quién hace la Solicitud de
>         Reparación? Me parece
>         recordar que estaba en versiones anteriores de tu SRS... pero
>         tal vez me
>         esté confundiendo de trabajo final.
>         
>                 Resumiendo: sin ese campo y agregando como se guardan
>         los usuarios esto
>         está listo.
>         
>                 Saludos!
>         
>         
>         PD: hoy recibí otro mensaje igual a este, así que también lo
>         damos por
>         contestado.
>         
>         
>         > 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!
>         >
>         
>         
>         
>         --
>         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
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar
http://www.grupopegasus.com
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



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