[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