[Php-avanzado] Tablas para Bibliotech

Fernando Pehuén Borsani fpborsani en yahoo.com.ar
Vie Dic 20 20:41:38 ART 2013


Hola profe!

 
Acá le envío la tablas para mi proyecto (en versales está
el nombre de la tabla, y en minúsculas sus campos), y debajo los requerimientos
(v6.4) para que compare.
Algo que me estuvo dando dificultades es que inicialmente
pensé que los atributos equivalían a las columnas de las tablas, pero creo que
en realidad vienen a ser los parámetros de las funciones.
Por este motivo va a notar que a veces las tablas son el
reflejo de cada atributo, y que en otros lugares las tablas tienen más columnas
que las que corresponderían por los atributos.
 
---------
Tablas:
---------
 
EDITORIALES
id/editor
AUTORES
id/autor
GENEROS
id/genero
LIBROS
id/codigo/id_editor/titulo/id_genero/portada/resumen
AUTORES_LIBROS
id/id_autor/id_libro
UNIDADES
id/id_libro/codigo_interno
SEXOS
id/sexo
RANGOS
id/rango
VISITANTES
id/nombre/apellido/apodo/email/id_rango/id_sexo
VOTOS
id/id_libro/id_visitante/valor (0 || 1)
COMENTARIOS
id/id_libro/id_visitante/fecha/texto
POPULARIDADES
id/id_libro/cantidad
REPORTES
id/fecha/texto
TIPOS_DOCS
id/tipo
ASOCIADOS
id/nombre/apellido/id_tipo_docs/documento/fecha_registro/id_sexo/email/direccion/tel/cel/id_rango/id_permiso
(0 = banned || 1 = allowed) CUOTAS id/id_asociado_fecha TIPOS_INF id/tipo
INFORMES id/id_asociado/id_tipos_inf/fecha/texto
PUESTOS
id/puesto
PERMISOS
id/permiso
EMPLEADOS
id/nombre/apellido/id_puesto/id_permiso
MOVIMIENTOS
id/id_unidad/id_estado/fecha/id_asociado/id_empleado
VENCIMIENTOS
id/id_movimiento/fecha (esta fecha depende de la
confiabilidad, que es un dato cambiante, por eso la fijo en esta tabla) STOCK
id/id_libro/existencias/prestados/manteniendo/extraviados/destruidos/adquiridos
 
---------------------------------------------------------
Software Requirements Specification[SRS] Bibliotech v6.4
---------------------------------------------------------
 
Requerimientos Funcionales[RF]:
 
01) El sistema debe gestionar editoriales.
02) El sistema debe gestionar autores.
03) El sistema debe gestionar géneros.
04) El sistema debe gestionar libros con su
editorial[01], su(s) autor(es)[02] y su género[03].
05) El sistema debe gestionar unidades de libros[04].
06) El sistema debe mostrar los sexos.
07) El sistema debe mostrar rangos de edad.
08) El sistema debe gestionar visitantes con su sexo[06]
y rango de edad[07].
09) El sistema debe registrar los votos de los
visitantes[08] a los libros[04].
10) El sistema debe gestionar comentarios de los
visitantes[08] a los libros[04].
11) El sistema debe registrar la popularidad del
libro[04].
12) El sistema debe reportar la popularidad[12] de los
libros[04] mensualmente.
13) El sistema debe buscar libros[04].
    13.1) Por ISBN
    13.2) Por
Editorial[01].
    13.3) Por
Autor[02].
    13.4) Por título.
    13.5) Por
género[03].
14) El sistema debe mostrar tipos de documentos.
15) El sistema debe gestionar asociados con su sexo[06],
rango de edad[07] y tipo de documento[15].
16) El sistema debe calcular la confiabilidad de los
asociados[15].
17) El sistema debe mostrar los meses del año.
18) El sistema debe inscribir cuotas de asociados[15] con
su mes[17].
19) El sistema debe informar al asociado del vencimiento
de la cuota[18].
20) El sistema debe mostrar los estados.
21) El sistema debe registrar el préstamo de unidades[05]
a asociados[15] con su estado[20].
    21.1) El
sistema debe detener un nuevo préstamo si excede la confiabilidad[16].
    21.2) El
sistema debe detener un nuevo préstamo si la cuota[18] es anterior al mes en
curso.
    21.3) El
sistema debe detener un nuevo préstamo si no hay unidades[05] disponibles.
22) El sistema debe registrar devoluciones de
unidades[05] por parte de los asociados[15] con su estado[20].
23) El sistema debe registrar extravíos  de unidades[05] por parte de los
asociados[15] con su estado[20].
24) El sistema debe registrar adquisiciones de
unidades[05] por parte de los asociados[15] con su estado[20].
25) El sistema debe registrar el mantenimiento de
unidades[05] con su estado[20].
26) El sistema debe gestionar el stock de unidades[05].
    26.1) El
sistema debe comprobar si ya existe un libro[04] cuando se den de alta
unidades[05].
    26.2) El
sistema debe sumar uno a stock:cantidad y stock:disponibles al efectuarse el
alta de unidad[05].
    26.3) El sistema
debe restar uno a stock:disponibles al efectuarse un préstamo[21].
    26.4) El
sistema debe sumar uno a stock:disponibles por devoluciones[22].
    26.5) El
sistema debe restar uno a stock:cantidad por extravíos[23].
    26.6) El
sistema debe sumar uno a stock:cantidad y stock:disponibles por
adquisiciones[24].
    26.7) El
sistema debe restar uno a stock:disponible al enviarse la unidad[05] a
mantenimiento[25].
    26.8) El
sistema debe restar uno a stock:cantidad por destrucción de la unidad[05] en
mantenimiento[25].
    26.9) El
sistema debe sumar uno al stock:disponible al volver la unidad[05] de
mantenimiento[24].
26) El sistema debe informar al asociado[15] del
vencimiento del préstamo[21] un día antes del vencimiento.
27) El sistema debe mostrar los préstamos[21] vencidos
hace más de una semana.
 
 
Requerimientos No Funcionales[RNF]:
 
- Gestionar puestos
- Gestionar permisos
- Gestionar a los empleados con su puesto y permiso.
 
--------------
Diccionario:
--------------
--Editorial: Casa editora.
  Atributos:
nombre.
--Autores: nombre(s) de la(s) persona(s) que escribe(n)
el libro. Un libro puede tener varios autores.
  Atributos:
nombre.
--Género: categorías en que clasificar de forma
excluyente las obras literarias atendiendo a su contenido. Algunos de ellos
son: poesía, ciencia ficción, cuento.
  Atributos:
nombre.
--Libro: Obra de extensión suficiente para formar un
volumen, en soporte físico.
  Atributos: código
identificador (isbn o equivalente previo a 1970), editorial, autores, título,
género, portada, resumen de la contracara.
--Unidad: copia de un libro que comparte todas los
atributos con el original, menos el código bibliotecario, propio de la unidad.
  Atributos: código
bibliotecario.
--Sexo: femenino o masculino.
  Atributo: nombre.
--Rango de edad: hasta 15 años, de 15 a 18 años, de 18 a
22 años, de 23 a 30 años, de 30 a 40 años, de 40 a 60 años, mayor de 60 años.
  Atributo: rango.
--Visitante: persona externa a la empresa que ingresa al
contenido web generado por este software.
  Atributos:
Nombre, Apellido, Apodo, email, rango de edad, sexo.
--Votos: valoración positiva o negativa sobre el libro.
  Atributo: valor.
--Comentarios: opinión que el visitante deja escrita
sobre un libro específico.
  Atributos: autor,
contenido, libro, fecha.
--Popularidad: cantidad de personas que leen la
información detallada de un libro(portada y resumen de contracara).
  Atributos: libro,
cantidad.
--Reportar: crear un archivo con una lista decreciente de
los libros y la cantidad de visitas que recibieron.
  Atributos:
ranking, fecha.
--Búsqueda: Comprobación de existencia de un libro(por
código identificador o título), autor, editorial, y listado de los resultados.
--Comprobar si ya existe un libro: verificar si el código
identificador de un libro ya existe en el sistema.
  Atributos: código
identificador ingresado, resultado.
--Tipos de documentos: documento nacional de
identidad(DNI), libreta de enrolamiento(LE), libreta cívica(LC), cédula de
identidad(CI).
  Atributo: tipo.
--Confiabilidad: cantidad de préstamos activos
simultáneos que puede tener un asociado, cantidad de días hasta el vencimiento
del préstamo.
  Cálculo de
puntos: devuelto antes del vencimiento, +1 punto. Devuelto tras el vencimiento,
-10 puntos por día vencido y cambio temporal a rango suspendido. Extraviado:
inhibe de por vida al asociado a no ser que efectúe una adquisición, en cuyo
caso lo restablece como rango 1 con 0 puntos.
  Rangos: (1) hasta
100 puntos: 2 unidades, 2 semanas. (2) desde 101 hasta 300: 2 unidades, 3
semanas. (3) desde 301: 3 unidades, 3 semanas. (Suspendido) 0 libros, los días
suspendido se calculan así: Penalización = 5 * cantidad de días de atraso *
cantidad de veces que el asociado devolvió tarde un préstamo. Tras este período
el asociado recupera su rango de confiabilidad del 1 al 3 según sus puntos
almacenados.
  Atributos:
asociado, puntaje, rango.
--Asociado: persona que paga un abono mensual y a cambio
puede recibir unidades en préstamo.
  Atributos:
Nombre, Apellido, tipo de documento, número de documento, fecha de registro,
email, teléfono, celular, dirección, rango de edad, sexo, confiabilidad.
--Cuota: suma de dinero que se abona mensualmente para
poder recibir los servicios de la institución.
  Atributos:
asociado, último mes(con su año correspondiente) pago.
--Informar: enviar un correo electrónico con información
de interés. Hay dos tipos: de vencimiento de cuota y de vencimiento de
préstamo.
  Atributos:
Asociado, tipo de informe, fecha, informe.
--Estados: reflejan el movimiento de unidades: activo,
anulado, devuelto en fecha, devuelto vencido, extraviado, adquirido, reparando,
reparada, destruida.
  Atributo: nombre.
--Préstamo: entrega de unidades de la biblioteca al
asociado, para que los lea en su hogar.
  Atributos:
Asociado, unidad, fecha de préstamo, fecha de vencimiento, estado: activo o
anulado.
--Devolución: cese del préstamo porque el asociado
entregó de vuelta la unidad a la biblioteca.
  Atributos: Asociado,
unidad, fecha en que se devolvió, estado: devuelto en fecha o devuelto vencido.
--Extravío: pérdida de la unidad porque el asociado no la
devolvió a la biblioteca.
  Atributos:
Asociado, unidad, estado: extraviado.
--Adquisición: cuando el usuario que efectuó un extravío
entrega a la biblioteca una unidad comprada por él.
  Atributos:
Asociado, unidad, estado: adquirido.
--Mantenimiento: mantenimiento recibe unidades dañadas e
intenta repararlas. En caso que sea imposible, la destruirá.
  Atributos:
unidad, estados: reparando, anulado, reparada, destruida.
--Stock: suma de las unidades que corresponden al mismo
libro, y cuantos de esas unidades no están prestadas, extraviadas, destruidas o
en mantenimiento.
  Atributos: código
identificador, cantidad, disponibles.
--Puesto: departamento en el que trabaja el empleado.
Ejemplos: infantil, escolares, histórico.
--Permiso: nivel de acceso. El cero representa acceso
nulo. A mayor número, mayor cantidad de funcionalidades disponibles.
--Empleado: persona bajo sueldo que realiza tareas para
el comprador de este software.
  Atributos:
Nombre, Apellido, puesto, permiso.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20131220/bb92e345/attachment-0001.html>


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