[Php-avanzado] FW: Como seguimos?

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Vie Nov 16 21:01:52 ART 2012


Hola Jorge,


El vie, 16-11-2012 a las 10:25 -0300, Jorge Di Iorio escribió:
> Ahí te lo reenvío con el adjunto achicado! Saludos y Buen Finde!

	Gracias!

	Copio y pego debajo el cuerpo de la SRS para esta respuesta:


	Respecto a la SRS, la veo adecuada para el problema que estás
resolviendo y la podemos dar por terminada, al menos para lo que pedimos
para este curso.
	La guardo como futura referencia.

	Respecto a la Normalización, un par de observaciones:

1) la tabla canchas_deportes está correcta, pero decidiste en todas las
tablas usar una clave artificial, y en esta estás usando una clave
natural, y para colmo doble! Yo le agregaría un id_canchas_deportes como
PK y dejaría las otras solo como FK, pero si te gusta más así, no tengo
nada que objetarte (después me voy a reir cuando tengas que borrar un
deporte de una cancha ;-) )

2) a las tablas de cotas_no_laborales_* les falta el campo
"observación".

3) Argghhh... En la tabla Estados estás usando un campo discriminador!.
Creá una tabla para el Estado de cada cosa: además de que es fácil, son
RF que solo se muestran, así que solo tenés que ponerle los datos a cada
tabla.

4) En Alquileres fijate si vale la pena tener id_tarifa... si está, te
va a dar ganas de usarlo, pero como es un dato que puede cambiar con el
tiempo, si interpretación es bastante dudosa. Con poner la tarifa sería
suficiente.
Tener ahí los campos id_reserva y id_reserva_fija es otra vez usar un
discriminador: estaría mejor normalizado si pasás a otra tabla esta
relación.
Otra cosa de esa tabla es que estás repitiendo datos en los campos
"descuento" y "recargo". Son lo mismo con signo contrario, y no es
razonable hacer un descuento y un recargo a la vez.

5) Que el Cliente tenga "nombre" y "DNI" y no "apellido" me hace
sospechar que no estás en 1FN... no habría que separarlos?


	Por ahora, nada más!



--------------------------------------------------------------------

Especificación de Requerimientos 

Sistema de Gestión de Reservas y Alquileres de Complejos Deportivos

	REQUERIMIENTOS FUNCIONALES

		1.	El sistema debe gestionar clientes.
		2.	El sistema debe gestionar complejos.
		3.	El Sistema debe gestionar deportes.
		4.	El sistema debe gestionar Canchas con su Complejo[4] y Deportes[6].
		5.	El sistema debe gestionar tarifas con su Complejo[4].
		6.  El Sistema debe gestionar cotas no laborales de Canchas[5].
		7.	El Sistema debe gestionar cotas no laborales de Complejos[2].	
		8.  El Sistema debe mostrar el Estado[] de las Reservas.		
		9.	El sistema debe registrar Reservas con su Cancha[7], Cliente[3],
Tarifa[5] y mostrar su Estado[8].
			9.1.	El sistema debe mostrar las Reservas dadas filtrando por fechas,
complejo, cancha y deporte.
			9.2.    El Sistema debe impedir la Reserva de una cancha de un
complejo si la misma pertenece a un complejo que se encuentra en una
cota de Tiempo de inactividad.
			9.3.    El Sistema debe impedir la Reserva de una cancha si la misma
se encuentra en una cota de Tiempo de inactividad.
			9.4.	El Sistema debe impedir realizar reservas si el Cliente se
encuentra inactivo.
		10.  El Sistema debe mostrar el Estado[] de las Reservas Fijas.			
		11.  El sistema debe registrar Reservas Fijas con su Cliente[1],
Cancha[4] y Tarifa[5](opcional) y mostrar su Estado[10].
			11.1.	El sistema debe realizar una reserva fija un determinado día de
la semana y dejarla hecha en el calendario hasta una fecha de
vencimiento. 
			11.2.	El sistema debe mostrar en el calendario todas las Reservas
fijas. 
			11.3.	El sistema debe mostrar las reservas fijas que falte menos de
una semana para su fecha de fin a partir de la fecha actual del
sistema. 
			11.4. 	El sistema debe dar de baja una reserva fija para un día
determinado y realizar una reserva "común" para otro cliente.
			11.5.	El Sistema no debe realizar reservas fijas si el Cliente se
encuentra inactivo.
		12.	El sistema debe mostrar una advertencia por pantalla cuando una
reserva fija se cancele un número de veces predeterminado.
		13. El sistema debe registrar Alquileres con su Cliente[1], Cancha,
Reserva[9](Opcional) y mostrar su estado.
			13.1.	El Sistema no debe realizar Alquileres si el Cliente se
encuentra inactivo.
		14.	El sistema debe mostrar el listado de Reservas de los clientes.
			14.1. 	El sistema debe mostrar un listado de reservas con su
cliente[1] filtrando por Estado[] y Fecha.
			14.2.	El sistema debe mostrar un listado de reservas fijas por
Estado[]. 
		15.	El sistema debe mostrar el listado de Alquileres de los clientes.
			15.1.	El sistema debe mostrar los alquileres que realizo un cliente.
			15.2. 	El sistema debe mostrar un listado de los alquileres con su
cliente[1] filtrando por Fecha.
		
		Diccionario:
			Cliente: Código, Nombre, dni, domicilio, teléfono fijo, teléfono
celular, email, observación, activo (s/n).
			Complejo: Código, Nombre, Domicilio, Observación.
			Deporte: Código, Nombre.
			Cancha: Código, Nombre, Deportes, Complejo, Observación.
			Tarifa: Código, Nombre, Complejo, valor, Observación.
			Cotas no Laborales de Canchas: Detalle, Fecha y Hora de Inicio, Fecha
y Hora de Fin, Cancha.
			Cotas no Laborales de Complejos: Detalle, Fecha y Hora de Inicio,
Fecha y Hora de Fin, Complejo.
			Estado de Reserva: Nombre[Reservado, Confirmado, Cancelado Cliente,
Cancelado Complejo, Caido], Color.
			Reserva: Cliente, Cancha, Tarifa, Observación, Fecha y Hora Inicio,
Duracion, Estado de Reserva.
			Estado de Reserva Fija: Nombre[Cancelado Cliente, Cancelado Complejo,
Caido, Reasignado], Color.
			Reserva Fija: Cliente, Cancha, Tarifa, Observación, Fecha Inicio,
Fecha Fin, Dia de la Semana, Hora_Inicio, Duracion, Estado de Reserva
Fija.
			Estado de Alquiler: Nombre[Pendiente de Pago, Pago, Bonificado],
Color.
			Alquiler: Cliente, Cancha, Tarifa, Descuento, Recargo, Observación,
Fecha y Hora Inicio, Duracion, Reserva, Estado de Alquiler. 
				
	REQUERIMIENTOS NO FUNCIONALES	

		1.	El sistema debe ser web.
		2.  El sistema debe solicitar loguin para su utilización. 
		3.	El sistema debe gestionar usuarios.
		
		Diccionario:
				Usuario: Código, Nombre, Contraseña, Agrega Registros, Modifica
Registros, Elimina Registros, Modifica Usuarios.



-- 
Leonardo Tadei
leonardot en pegasusnet.com.ar
Web: http://leonardo.tadei.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