[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