[Php-avanzado] Normalizacion - Matias De Carli v1

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Jue Dic 2 20:06:26 ARST 2010


Hola Juan!

El jue, 02-12-2010 a las 21:14 +0000, juan ma escribió:
> Leo, te paso las tablas, aver como las ves. Sabes si hay alguna fecha
> limite para la entrega?... igual supongo que en unos días ya la tendré
> terminada (no mas de 10 días, en el peor de los casos)

	Este curso se acaba el 22/12/2010. Es la fecha límite de la cursada.
Recordá que me tenés que instalar tu trabajo en el servidor de la FI
para entregarlo (o entregar una versión previa para cumplir con esto y
luego enviarme el trabajo terminado).

	Respecto a la normalización, se ve bien, pero tengo unas observaciones
para hacerte:
	- en algunas tablas usás una clave natural (Ej, Adminsitrador y Lector)
pero en otras una clave artificial (Ej Autor, Reserva). Es seguro mejor
que si decidís usar claves artificiales, todas las tablas las tengan, y
si decidís usar claves naturales, todas sean naturales... es muy
engorroso escribir y mantener el código con unas tablas de una forma y
otras de otra.
	- Por regla de nomenclatura globalmente aceptada, los nombre de las
tablas son siempre en plural...
	- Lector está mal normalizado: la localidad no depende de la clave
primaria y por tanto va en una tabla aparte. Lo mismo para Tipo, Carrera
y Activo.
	- Material está mal normalizado: tipo_literatura no depende de la clave
primaria y por tanto va en una tabla aparte. Lo mismo apra
nivel_registro (que no se de donde sale.. no lo encuentro en la SRS),
editorial, ciudad, pais, tipo_adquisición (que no se de donde sale..
tampoco lo encuentro en la SRS), y alta/baja.
	- Autor pareciera que tiene mal el campo 'activo'... pero lo que me
resulta a esta altura es que decidiste usar cambios booleanos para
ciertas cosas que parecen "binarias"... podría quedar así, pero te
aseguro que con el tiempo te arrepentís de no tener una tabla para estas
cosas: el código se te llena de if ($reg['activo']) { $estado =
'activo' } else { $estado = 'borrado' } para mostrar las cosas en la
pantalla...
	- El Alquiler debería repetir los datos del que se le presta, para que
el sistema edite los datos de un lector... sino, al editar un lector,
cambiás el pasado.
	- Idem para las ReservaS.
	- Idem para las Solicitudes.

	Revisalo, corregilo y reenviámelo!


> ADMINISTRADOR:     -NOMBRE
>         -APELLIDO
>         -USER 
>         -PASSWORD
> 
> LECTOR:        -NOMBRE
>         -APELLIDO
>         -DNI
>         -LOCALIDAD
>         -CODIGO_POSTAL
>         -DOMICILIO
>         -TELEFONO
>         -CELULAR
>         -MAIL    
>         -TIPO
>         -CARRERA
>         -ACTIVO
>     
> MATERIAL:    -CDU
>         -NRO_INVENTARIO
>         -TIPO_LITERATURA
>         -NIVEL_REGISTRO
>         -TITULO
>         -PAGINAS
>         -ISBN
>         -EDITORIAL    
>         -CIUDAD
>         -PAIS
>         -EDICION
>         -DESCRIPTORES
>         -INFO_DESCRIPTIVA
>         -TIPO_ADQUISICION
>         -COSTO
>         -OBSERVACIONES
>         -ALTA/BAJA
>         -FECHA_ALTA
>         
> AUTORES:     -ID
>         -NOMBRE
>         -APELLIDO
>         -ACTIVO
> 
> MATERIAL_AUTOR    -ID
>         -CDU
>         -ID_AUTOR
> 
> ALQUILER:     -ID
>         -NRO_INVENTARIO
>         -DNI
>         -FECHA_ALQUILER
>         -FECHA_DEVOLUCION
>         -FECHA_DEVUELTO
> 
> RESERVA:    -ID
>         -NRO_INVENTARIO
>         -DNI
>         -FECHA_RESERVA
>         -FECHA_RETIRO
> 
> SOLICITUDES:    -ID
>         -DNI
>         -NOMBRE
>         -APELLIDO
> 
> ORDEN DE COMPRA:    -ID
>             -GENERADA (PARA DECIDIR SI LA ORDEN YA SE GENERO, O DEBE
> GENERARSE EN EL FUTURO)
>             -FECHA_GENERADA
> 
> MATEIAL_ORDEN_DE_COMPRA:    -ID
>                 -ID_ORDEN_DE_COMPRA
>                 -CDU
>                 -TITULO
> 
> > From: leonardot en pegasusnet.com.ar
> > To: php-avanzado en pato2.fi.mdp.edu.ar
> > Date: Mon, 29 Nov 2010 07:37:09 -0300
> > Subject: Re: [Php-avanzado] SRS - Matias De Carli v1.5
> > 
> > Hola Matías,
> > 
> > El lun, 29-11-2010 a las 09:48 +0000, juan ma escribió:
> > > Ahi corregi esas cosas. Los autores los pienso agregar, o
> eliminar. No
> > > voy a dar la posibilidad de modificarlos, aunque si de listarlos.
> > > Como esta ahora?
> > 
> > Ya está lo suficientemente clara, y la podemos dar por terminada.
> > La guardo para futura referencia de tu entrega.
> > 
> > Siguiente paso: enviá las tablas normalizadas!
> > 
> > Seguimos!
> > 
> > PD: Como observaciones, fijate que en el RF6, debería decir
> "autores" en
> > vez de "lectores"; en el RF9 decís "al inicio" , pero no al inicio
> de
> > qué, así que eso está ambiguo; al diccionario de orden de compra, le
> > falta la cantidad de cada material; hay unos pequeños typo por ahí.
> > 
> > > requerimientos funcionales
> > > -------------------------------------
> > > 1-el sistema debe gestionar ciudades
> > > 2-el sistema debe listar las carreras
> > > 3-el sistema debe listar los tipos de lector 
> > > 4-el sistema debe gestionar lectores y sus respectivas ciudades, y
> > > carreras
> > > 5-el sistema debe listar los tipos de literatura 
> > > 6-el sistema debe permitir listar, alta/baja de lectores
> > > 7-el sistema debe gestionar material con su tipo de literatura y
> sus
> > > autores
> > > 8-el sistema debe seleccionar la cantidad de días que durara un
> > > alquiler
> > > 9-el sistema debe eliminar las reservas que esten vencidas
> > > (verificacion que se hace al inicio)
> > > 10-el sistema debe realizar alquileres de material a los lectores
> > > 11-el sistema debe asentar las devoluciones de material, por parte
> de
> > > los lectores
> > > 12-el sistema debe listar los últimos 5 alquileres realizados para
> un
> > > material determinado
> > > 13-el sistema debe listar los últimos 5 alquileres de los lectores
> > > 14-el sistema debe realizar reservas de material a los lectores
> > > 15-el sistema debe realizar alquiler de material a los lectores, a
> > > partir de una reserva
> > > 16-el sistema debe listar las ultimas 5 reservas de los lectores
> > > 17-el sistema debe gestionar 'pedidos de material', del cual se
> > > generara una orden de compra
> > > 18-el sistema debe dar de alta lectores, que hayan mandado una
> > > solicitud 
> > > 19-el sistema debe ofrecer un formulario de contacto, que envíe un
> > > mail al administrador
> > > 
> > > diccionario
> > > --------------
> > > -administrador: nombre, apellido, usuario, pasword
> > > -alquiler: nro de inventario, DNI, fecha de alquiler, fecha de
> > > -devolución, fecha devuelto
> > > -carrera: carrera
> > > -ciudad: ciudad
> > > -editorial: editorial
> > > -lector: nombre, apellido, DNI, localidad, código postal,
> matricula,
> > > domicilio, teléfono, celular, mail, tipo (docente, egresado,
> > > administrativo, alumno), carrera (en caso de que sea alumno) 
> > > -material: CDU, numero de inventario, tipo de literatura, nivel de
> > > registro, titulo, paginas, isbn, editorial, ciudad, país, edición,
> > > descriptores, información descriptiva, tipo de adquisición, costo,
> > > observaciones, fecha de alta, fecha de baja
> > > -tipo de lector: nombre
> > > -tipo de literature: nombre
> > > -autor: nombre 
> > > -reserva: numero de inventario, DNI, fecha de reserva, fecha de
> > > retiro 
> > > -orden de compra: numero de orden de compra, material
> > > 
> > > 
> > > 
> > > > From: leonardot en pegasusnet.com.ar
> > > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > > Date: Fri, 26 Nov 2010 23:09:14 -0300
> > > > Subject: Re: [Php-avanzado] SRS - Matias De Carli v1.4
> > > > 
> > > > Hola Matías!
> > > > 
> > > > El vie, 26-11-2010 a las 23:13 +0000, juan ma escribió:
> > > > > Leo, ahi corregi unas cosas, decime como lo ves! Agregue lo de
> la
> > > > > fecha de expiracion de la reserva, y los autores los liste en
> el
> > > > > diccionario aparte!
> > > > 
> > > > Me parece perfecto!
> > > > Pero entonces te falta un "el sistema debe gestionar autores" y
> > > > modificar el RF 6 para que indique que el material se gestiona
> con
> > > "su
> > > > tipo de material y sus autores".
> > > > 
> > > > A propósito de esto, el RF 5 dice "tipo de literatura" pero el
> RF 6
> > > > habla de "tipos de material". Parecen la misma cosa... poneles
> el
> > > mismo
> > > > nombre!
> > > > 
> > > > Una más, y la tenemos!
> > > > 
> > > > > requerimientos funcionales
> > > > > -------------------------------------
> > > > > 1-el sistema debe gestionar ciudades
> > > > > 2-el sistema debe listar las carreras
> > > > > 3-el sistema debe listar los tipos de lector 
> > > > > 4-el sistema debe gestionar lectores y sus respectivas
> ciudades, y
> > > > > carreras
> > > > > 5-el sistema debe listar los tipos de literatura 
> > > > > 6-el sistema debe gestionar material con su tipo de material
> > > > > 7-el sistema debe seleccionar la cantidad de días que durara
> un
> > > > > alquiler
> > > > > 8-el sistema debe eliminar las reservas que esten vencidas
> > > > > (verificacion que se hace al inicio)
> > > > > 9-el sistema debe realizar alquileres de material a los
> lectores
> > > > > 10-el sistema debe asentar las devoluciones de material, por
> parte
> > > de
> > > > > los lectores
> > > > > 11-el sistema debe listar los últimos 5 alquileres realizados
> para
> > > un
> > > > > material determinado
> > > > > 12-el sistema debe listar los últimos 5 alquileres de los
> lectores
> > > > > 13-el sistema debe realizar reservas de material a los
> lectores
> > > > > 14-el sistema debe realizar alquiler de material a los
> lectores, a
> > > > > partir de una reserva
> > > > > 15-el sistema debe listar las ultimas 5 reservas de los
> lectores
> > > > > 16-el sistema debe gestionar 'pedidos de material', del cual
> se
> > > > > generara una orden de compra
> > > > > 17-el sistema debe dar de alta lectores, que hayan mandado una
> > > > > solicitud 
> > > > > 18-el sistema debe ofrecer un formulario de contacto, que
> envíe un
> > > > > mail al administrador
> > > > > 
> > > > > diccionario
> > > > > --------------
> > > > > -administrador: nombre, apellido, usuario, pasword
> > > > > -alquiler: nro de inventario, DNI, fecha de alquiler, fecha de
> > > > > -devolución, fecha devuelto
> > > > > -carrera: carrera
> > > > > -ciudad: ciudad
> > > > > -editorial: editorial
> > > > > -lector: nombre, apellido, DNI, localidad, código postal,
> > > matricula,
> > > > > domicilio, teléfono, celular, mail, tipo (docente, egresado,
> > > > > administrativo, alumno), carrera (en caso de que sea alumno) 
> > > > > -material: CDU, numero de inventario, tipo de literatura,
> nivel de
> > > > > registro, titulo, paginas, isbn, editorial, ciudad, país,
> edición,
> > > > > descriptores, información descriptiva, tipo de adquisición,
> costo,
> > > > > observaciones, fecha de alta, fecha de baja
> > > > > -tipo de lector: nombre
> > > > > -tipo de literature: nombre
> > > > > -autor: nombre 
> > > > > -reserva: numero de inventario, DNI, fecha de reserva, fecha
> de
> > > > > retiro 
> > > > > -orden de compra: numero de orden de compra, material
> > > > > 
> > > > > Saludos!
> > > > > 
> > > > > > From: leonardot en pegasusnet.com.ar
> > > > > > To: php-avanzado en pato2.fi.mdp.edu.ar
> > > > > > Date: Thu, 25 Nov 2010 12:15:44 -0300
> > > > > > Subject: Re: [Php-avanzado] SRS - Matias De Carli v1.3
> > > > > > 
> > > > > > Hola Matías!
> > > > > > 
> > > > > > El jue, 25-11-2010 a las 07:24 +0000, juan ma escribió:
> > > > > > > Leo, según lo hablado hoy, re acomodo un par de cosas,
> tomo
> > > > > impulso y
> > > > > > > te mando mi nueva versión.
> > > > > > 
> > > > > > Dale! Que así en caliente con las cosas frescas sale maś
> rápido!
> > > > > > 
> > > > > > > Quizás me falto algo en el diccionario... es donde mas
> dudo.
> > > En
> > > > > los
> > > > > > > RF creo que esta todo, salvo que alguna cosa puede estar
> mal
> > > > > > > expresada. Espero tus comentarios, saludos, y de nuevo
> gracias
> > > por
> > > > > > > hacerte un tiempo para desasnarme hoy a la tarde!!!
> > > > > > 
> > > > > > Es un placer, como siempre.
> > > > > > 
> > > > > > Te comento un par de cosas intercaladas, y te hago unas
> > > preguntas
> > > > > sobre
> > > > > > el sistema para que me quede más claro:
> > > > > > 
> > > > > > Fijate que te quedaron un par de "poder" todavía por ahí ;-)
> > > > > > 
> > > > > > > requerimientos funcionales
> > > > > > > -------------------------------------
> > > > > > > 
> > > > > > > 1-el sistema debe gestionar ciudades
> > > > > > > 2-el sistema debe listar los tipos de lector
> > > > > > 
> > > > > > Agregá al diccionario que atributos tendrá... supongo que
> solo
> > > > > "nombre"
> > > > > > 
> > > > > > > 3-el sistema debe listar las carreras
> > > > > > > 4-el sistema debe gestionar lectores y sus respectivas
> > > ciudades
> > > > > > 
> > > > > > Según el diccionario, el Lector también tienen una Carrera:
> pasá
> > > > > > Carrera más arriba y agregala a la especificación del
> Lector.
> > > > > > 
> > > > > > > 5-el sistema debe listar los tipos de material
> > > > > > 
> > > > > > Agregá al diccionario que atributos tendrá... supongo que
> solo
> > > > > "nombre"
> > > > > > también.
> > > > > > Fijate que en el diccionario de Material aparece un "tipo de
> > > > > > literatura", que parece que es esto mismo: elegí una forma
> de
> > > > > llamarlo y
> > > > > > usá siempre la misma!
> > > > > > 
> > > > > > > 6-el sistema debe gestionar material
> > > > > > 
> > > > > > te falta el "con su tipo de material.
> > > > > > 
> > > > > > > 7-el sistema debe poder seleccionar la cantidad de días
> que
> > > durara
> > > > > un
> > > > > > > alquiler
> > > > > > > 8-el sistema debe realizar alquileres de material a los
> > > lectores
> > > > > > > 9-el sistema debe asentar las devoluciones de material,
> por
> > > parte
> > > > > de
> > > > > > > los lectores
> > > > > > > 10-el sistema debe listar los últimos 5 alquileres
> realizados
> > > para
> > > > > un
> > > > > > > material determinado
> > > > > > > 11-el sistema debe listar los últimos 5 alquileres de los
> > > lectores
> > > > > > > 12-el sistema debe realizar reservas de material a los
> > > lectores
> > > > > > > 13-el sistema debe poder realizar alquiler de material a
> los
> > > > > lectores,
> > > > > > > a partir de una reserva
> > > > > > > 14-el sistema debe listar las ultimas 5 reservas de los
> > > lectores
> > > > > > > 15-el sistema debe poder gestionar 'pedidos de material',
> del
> > > cual
> > > > > se
> > > > > > > generara una orden de compra
> > > > > > > 16-el sistema debe poder dar de alta lectores, que hayan
> > > mandado
> > > > > una
> > > > > > > solicitud 
> > > > > > > 17-el sistema debe ofrecer un formulario de contacto, que
> > > envíe un
> > > > > > > mail al administrador
> > > > > > > 
> > > > > > > diccionario
> > > > > > > --------------
> > > > > > > 
> > > > > > > administrador: nombre, apellido, usuario, pasword
> > > > > > > alquiler: nro de inventario, DNI, fecha de alquiler, fecha
> de
> > > > > > > devolución, fecha devuelto
> > > > > > > carrera: carrera
> > > > > > > ciudad: ciudad
> > > > > > > editorial: editorial
> > > > > > > lector: nombre, apellido, DNI, localidad, código postal,
> > > > > matricula,
> > > > > > > domicilio, teléfono, celular, mail, tipo (docente,
> egresado,
> > > > > > > administrativo, alumno), carrera (en caso de que sea
> alumno) 
> > > > > > > material: CDU, numero de inventario, tipo de literatura,
> nivel
> > > de
> > > > > > > registro, autornro1, autornro2, autornro3, titulo,
> paginas,
> > > isbn,
> > > > > > > editorial, ciudad, país, edición, descriptores,
> información
> > > > > > > descriptiva, tipo de adquisición, costo, observaciones,
> fecha
> > > de
> > > > > alta,
> > > > > > > fecha de baja
> > > > > > 
> > > > > > Los autores piden a gritos estar especificados por separado
> y
> > > ser
> > > > > > usados por el Material!!!
> > > > > > 
> > > > > > > reserva: numero de inventario, DNI, fecha de reserva,
> fecha de
> > > > > retiro
> > > > > > 
> > > > > > Tal vez valga la pena preveer una funcionalidad que haga
> expirar
> > > las
> > > > > > Reservas cuando no las vienen a buscar... se podría
> gestionar
> > > una
> > > > > > cantidad de días para la expiración como hacés en el RF 7
> > > > > > 
> > > > > > > orden de compra: numero de orden de compra, material
> > > > > > 
> > > > > > 
> > > > > > Dale, que ya casi la tenemos!
> > > > > > 
> > > > > > 
> > > > > > -- 
> > > > > > 
> > > > > > Leonardo Tadei
> > > > > > leonardot en pegasusnet.com.ar
> > > > > > 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
> > > > 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
> > 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
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