[Php-avanzado] srs terminada y tablas

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Dic 30 17:25:11 ARST 2009


Hola Lucas,

	por lo que me estás diciendo, estás cambiando (no mucho, pero
cambiando) lo que hace el sistema.
	Ahora los Empleados (no los Usuarios, que son otra cosa) tendría una
Mesa, lo que implica gestionar las Mesas disponibles para el sistema. 
	También ese "toma", "cierre" y "boleta" que aparecen ahora.

	La relación en el sistema entre los Usuarios y los Empleados es muy
simple: a un Usuario, con su clave y pass, le asignás un Empleado (y no
al revés)... aún así los Usuarios siguen sin ser un requerimeinto
funcional, en cambio los Empleados sí lo son porque tienen
funcionalidades dentro del sistema.

	También estás en las tablas relacionado el Tipo de Trámite con el
Código de Trámite, pero tu SRS no dice nada al respecto y los trata como
requerimientos independientes.

	En resumen, si no reformulás tu SRS, no puedo saber si están bien
normalizadas o no tus tablas...

	Saludos!!!

El lun, 28-12-2009 a las 22:39 -0300, Lucas Nastri escribió:
> Hola Leo, te cuento que finalmente decidí NO tratar a los empleados
> como los usuarios, y por eso había creado una tabla usuarios ...
> 
> >Usuarios:
> >id              int
> >nick            varchar(30)
> >pass            varchar(30)
> 
> >       Eh! Pero si el Empleado tiene nick y pass, para qué sirve la
> tabla de
> >Usuarios???
> 
> me olvidé de borrar el nick y el pass de la tabla empleados (me pasó
> por copiar y pegar).
> 
> 
> >Qué son mesa, toma, cierre y boleta?
> >       No me doy cuenta para que requerimeinto funcional o no
> funcional sirven
> >estos datos...
> 
> Éstos datos los voy a mover a la tabla usuarios. Me sirven para saber
> a que sistema puede acceder el empleado y de tipo de dato le pongo
> VARCHAR(2), porque voy a asignarle 'SI' o 'NO', según corresponga
> cuando se dé de alta el usuario.
> 
> 
> >Estudios:
> >id              int
> >nivel           varchar(20)
> >titulo          varchar(20)
> 
> >       El espacio para título es muy corto... sé más generoso con
> esto que el
> >disco es barato!!!
> 
> jaja, eso me causó gracia, pero tenés razón, le voy a asignar una
> longitud mayor.
> 
> 
> >Ciudadanos:
> >id              int             (PK)
> >dni             varchar(9)      (ÚNICO)
> 
> >       por qué el DNI es varchar y ni int(9)???
> 
> Le puse varchar porque no voy a realizar ninguna operación matemática
> con el dni. Es más conveniente ponerlo como entero?.
> 
> 
> >Tipo_tramite:
> >id              int             (PK)
> >tipo            varchar(15)
> >precio          int
> >id_codtram      int
> 
> >Codigo_tramite:
> >id              int             (PK)
> >codigo          char
> 
> >       Mmmm... esto matchea 1 a 1 los Tipos de Trámite con el Código
> de
> >Trámite, pero no parece ajustarse a tus necesidades. Si no entiendo
> mal,
> >un Tipo de Trámite es "nuevo ejemplar" y este puede tener el código
> 52 o
> >5240 si es con cambio de domicilio, pero tus tablas no permiten
> asociar
> >dos códigos a un tipo de trámite.
> >       Por otra parte, y a juzgar con los precios, parece que una
> persona que
> >hace un nuevo ejemplar y un cambio de domicilio juntos en realidad
> hace
> >y paga dos trámites... como si tuvieras solo dos códigos de trámite
> en
> >vez de tres como indica tu SRS.
> 
> En realidad yo tengo que indicar el tipo de trámite, que puede ser:
> Nuevo Ejemplar                                           --->   Código
> 52
> Cambio de Domicilio                                    --->   Código
> 40
> Nuevo Ejemplar + Cambio de Domicilio         --->   Código 52 40
> 
> Y también indicar el código del trámite, que lo indico con una
> consulta SQL ya que al tener el id del código en la tabla de los tipos
> de trámites accedo directamente al código.
> 
> 
> Te mando la srs y las tablas con los cambios que me marcaste.
> Muchas gracias Leo, feliz 2010.
> 
> El 26 de diciembre de 2009 23:52, Leonardo Tadei - Pegasus Tech Supply
> <leonardot en pegasusnet.com.ar> escribió:
>         Hola Lucas!
>         
>         El jue, 24-12-2009 a las 22:56 -0300, Lucas Nastri escribió:
>         > Hola Leo!, tenés razón, seguro me olvidé de adjuntarlo. Ahí
>         te lo
>         > mando.
>         
>         
>                Copio y pego las tablas para hacerte algunas consultas
>         y comentarios:
>         
>         Tablas para la base de datos del sistema:
>         
>         Categorias:
>         id              int             (PK)
>         puesto          varchar(15)
>         
>         
>         Empleados:
>         id              int             (PK)
>         dni             varchar(9)      (ÚNICO)
>         ape             varchar(30)
>         nom             varchar(30)
>         fnac            date
>         nick            varchar(20)
>         pass            varchar(20)
>         mesa            varchar(2)
>         toma            varchar(2)
>         cierre          varchar(2)
>         boleta          varchar(2)
>         
>                Qué son mesa, toma, cierre y boleta?
>                No me doy cuenta para que requerimeinto funcional o no
>         funcional sirven
>         estos datos...
>         
>         id_cat          int
>         
>                Deberías a agregar al requerimiento no funcional la
>         categoría del
>         usuario, o al funcional la categoría del empleado. Si no,
>         parece que
>         este dato sobra.
>                (temo que ahora te encuentres con la dificultad de
>         haber tomado tan
>         temprano la decisión de diseño de que los empleados y los
>         usuarios sean
>         la misma cosa)
>         
>         
>         Usuarios:
>         id              int
>         nick            varchar(30)
>         pass            varchar(30)
>         
>                Eh! Pero si el Empleado tiene nick y pass, para qué
>         sirve la tabla de
>         Usuarios???
>         
>         Provincias:
>         id              int
>         nombre          varchar(20)
>         
>         
>         Partidos:
>         id              int
>         nombre          varchar(20)
>         id_prov         int
>         
>         
>         Localidades:
>         id              int
>         nombre          varchar(20)
>         id_part         int
>         
>         
>         Estudios:
>         id              int
>         nivel           varchar(20)
>         titulo          varchar(20)
>         
>                El espacio para título es muy corto... sé más generoso
>         con esto que el
>         disco es barato!!!
>         
>         Ocupaciones:
>         id              int
>         nom             varchar(20)
>         
>         
>         Ciudadanos:
>         id              int             (PK)
>         dni             varchar(9)      (ÚNICO)
>         
>                por qué el DNI es varchar y ni int(9)???
>         
>         ape             varchar(30)
>         nom             varchar(30)
>         
>                Poné más grandes ape y nom porque 30 se te acaban
>         enseguida!
>         
>         fnac            date
>         sexo            char
>         telefono        varchar(18)
>         id_estudios     int
>         id_ocupacion    int
>         id_localidad    int
>         
>         
>         Tipo_tramite:
>         id              int             (PK)
>         tipo            varchar(15)
>         precio          int
>         id_codtram      int
>         
>         Codigo_tramite:
>         id              int             (PK)
>         codigo          char
>         
>                Mmmm... esto matchea 1 a 1 los Tipos de Trámite con el
>         Código de
>         Trámite, pero no parece ajustarse a tus necesidades. Si no
>         entiendo mal,
>         un Tipo de Trámite es "nuevo ejemplar" y este puede tener el
>         código 52 o
>         5240 si es con cambio de domicilio, pero tus tablas no
>         permiten asociar
>         dos códigos a un tipo de trámite.
>                Por otra parte, y a juzgar con los precios, parece que
>         una persona que
>         hace un nuevo ejemplar y un cambio de domicilio juntos en
>         realidad hace
>         y paga dos trámites... como si tuvieras solo dos códigos de
>         trámite en
>         vez de tres como indica tu SRS.
>         
>         
>         Estado_tramite:
>         id              int             (PK)
>         estado          varchar(12)
>         
>         
>         Tramites:
>         id              int             (PK)
>         num_boleta      varchar(18)
>         id_ciudadano    int
>         id_tipotram     int
>         id_estadotram   int
>         id_empleado     int
>         domicilio       varchar(50)
>         domicilio_nuevo varchar(50)
>         
>         
>                Todo lo no observad se ve bien.
>                Me desorienta el tema de los tipos y códigos de
>         trámite: o no son una
>         relación "1 a 1" o son la misma cosa y no requieren dos tablas
>         ni dos
>         especificaciones...
>         
>                Saludos!
>         --
>         
>         
>         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
Pegasus Tech Supply
Tel: (+54)(+223) 471-2880
La Salle 1131 - Mar del Plata - Argentina
http://www.pegasusnet.com.ar / http://blog.pegasusnet.com.ar
http://www.prometeustech.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