[Php-avanzado] Consulta sobre normalización

Silverzero silverzero.52 en gmail.com
Lun Jul 12 14:15:56 ART 2010


Hola Leo!

2010/7/12 Leonardo Tadei - Pegasus Tech Supply <leonardot en pegasusnet.com.ar>

> Buenas,
>
> El lun, 12-07-2010 a las 08:36 -0300, Gerardo Valiani escribió:
> >
> >
> > 2010/7/12 Silverzero <silverzero.52 en gmail.com>
> >         Hola!
> >
> >         Tengo que normalizar usuarios de un sitio de una ONG, en el
> >         que se registran usuarios para publicar y a la vez estos,
> >         pueden ser además socios, voluntarios, coordinadores, y/o
> >         directivos.
> >
> >         Para los usuarios regulares los datos requeridos son:
> >
> >         nombre
> >         apellido
> >         telefono
> >         celular
> >         email
> >         usuario
> >         contraseña
> >
> >         Para el resto se le suman:
> >
> >         fecha de nacimiento
> >         profesión
> >         tipo de documento
> >         nro de documento
> >         dirección
> >         pais
> >         ciudad
> >         codigo postal
> >
> >         Ahora mi pregunta es, me conviene hace una tabla con los datos
> >         de los usuarios regulares, y otra tabla "datos adicionales"
> >         para el resto de los usuarios y después relacionar con otra
> >         tabla que estén los tipos de usuario no?
> >         Saludos y gracias.
> >
> > Si, yo lo haria como vos decis. En "datos adicionales" tendrias que
> > poner un campo id_usuario, que relacione la tabla "usuarios" y la
> > tabla "datos adicionales". Y la ulitma tabla "relacion_usuario_tipo"
> > con los campos: id, id_usuario, id_tipo. Esta ultima tabla es
> > necesario solo si un usuario puede tener mas de un "tipo de usuario" a
> > la vez. Faltaria tambien la tabla "tipo_usuario" con los campos: id,
> > tipo.
>
>         Yo al id_usuario lo dejaría siempre en la tabla de Usuarios... de
> otra
> forma, los usuarios son "regulares" si no tienen asociación en la tabla
> de "datos extra", y hacer querys con IF adentro si bien se puede,
> debería ser para resolver un problema puntual, y no algo ya planteado
> desde el diseño.
>

Originalmente los hice así, pero me pareció que estaba mal porque la
proporción de "regulares" siempre sería mucho mayor que el resto, e imaginé
que tener muchos campos vacíos en la tabla era algo que ineficiente.


>
>        El enfoque simple de esto es tener todos los datos en la misma
> tabla, y
> estarán vacíos los adicionales en los registros que el tipo de usuario
> represente a los regulares.
>
>        El enfoque de diseño me parece que es tener usuarios por un lado, y
> por
> otro roles en la ONG, de manera que luego puedan asociarse usuarios con
> su rol o roles en la misma. Por lo que contás, podrían usar todos la
> misma tabla para los roles, ya que comparten los datos.
>

Entonces lo dejo como estaba, con las tablas usuarios, tipos_de_usuario y la
la relación entre estos.


>
>        (estos merengues pasan por pensar en "usuarios" en vez de pensar en
> que
> función tienen dentro del sistema como entidades... la palabra usuario
> es demasiado genérica para decir algo útil!!! )
>

siii! jaja sabía que me ibas a decir algo de la palabra usuarios! pero no se
me ocurrió otra forma de llamarlos...!


>
> > Saludos!
>
>        =mente!
>


>
> --
>
> 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
>



-- 
Carolina Derromediz
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/pipermail/php-avanzado/attachments/20100712/27ce89a8/attachment.htm 


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