[Php-avanzado] Tesis Diego Oliva
Leonardo Tadei - Pegasus Tech Supply
leonardot en pegasusnet.com.ar
Lun Dic 22 15:55:23 ART 2008
Hola Diego,
El lun, 22-12-2008 a las 12:35 -0200, Oliva, Diego M. escribió:
> Leo, acabo de volver a mardel, y no me llego ninguna respuesta, asi
> que te lo mando por de vuelta por si se perdio algun mail por el
> camino...
Había recibido este mail.
La verdad es que no me acuerdo si te había respondido o no...
Se me hace bastante difícil seguir las tablas para controlar la
normalización: esa mezcla de nombres en inglés con castellano y nombres
genéricos... (cities y provs... una tabla "data")
A falta de semántica para entender el almacenamiento, es bueno por
ejemplo poner uno o 2 datos representativos para ver los enganches de
una cosa con otra.
> Voy a ver si llego para el 27...
Más que observaciones, te consulto cosas que no entiendo:
> --------
>
> Buenas, Leo, te mando todo el proyecto de vuelta, a ver ahora que
> tul...
>
> Agenda...
>
> Registro de nuevo usuario:
>
> Datos: Nombre de usuario, Contraseña, Nombre,
> Apellido, Dirección, Teléfono, Mail (Obligados), y optativos, los
> mismos que van a tener los contactos.
> El usuario va a poder elegir de una lista un
> grupo al cual inscribirse o va a tener la opción de crear un nuevo
> grupo. En el primero de los casos, el alta va a estar regido por una
> configuración independiente para cada grupo, que tiene de opciones:
> registro automático; registro contra verificación de mail, registro
> contra verificación de mail con direcciones de mail excluyentes,
> registro contra aprobación del moderador del grupo. Si el usuario se
> está registrando y a su vez quiere dar de alta un nuevo grupo, va todo
> contra aprobación de administrador.
>
> Una vez dentro del sistema:
>
> Cada usuario va a poder dar de alta nuevos
> contactos, asi como eliminar y modificar antiguos.
> Cada contacto va a contar con los campos de
> información: Nombre, Apellido, Una Foto, Múltiples Direcciones,
> Múltiples Teléfonos, Múltiples Móviles, Múltiples E-Mails, Múltiples
> Páginas Web. También es posible categorizar cada contacto dentro de un
> grupo, y dichos grupos son únicos para cada usuario. Los teléfonos se
> pueden clasificar como de un tipo (Móvil, Hogar, Trabajo, Etc), a los
> cuales pueden ser agregados otros, también, únicos para cada usuario.
> Por otro lado, también se deberá definir uno de todos los múltiples de
> cada cosa como principal, para una mejor gestión de la información. Y,
> por último, es posible definir permisos para cada contacto, para que
> el mencionado pueda ser visible por el grupo al que pertenece el
> usuario, para cualquier usuario del sistema, o que quede como privado.
>
> Luego, la consulta: cada usuario va a tener
> acceso a sus propios contactos, va a poder realizar busquedas por
> nombre o apellido, listar por inicial de nombre o apellido y retringir
> busquedas y listados a los distintos grupos. Y también podrá
> visualizar aquellos contactos que tengan permisos suficientes como
> para que el usuario logeado pueda ver.
>
> Cada usuario va a tener su propia información
> personal, la cual será visible para su grupo o para todos los
> usuarios, configurable por dicho usuario.
>
>
> -------------- TABLAS -------------
>
> cgroups (Grupos de los Contactos)
> `id` int(11) NOT NULL auto_increment,
> `group` varchar(50) NOT NULL,
y con qué se relacionan estos grupos de contactos? Con el usuario? con
el grupo?
> cities
> `id` int(11) NOT NULL auto_increment,
> `city` varchar(100) NOT NULL,
> `pre` varchar(10) NOT NULL,
> `zip` varchar(10) NOT NULL,
> `id_prov` int(11) NOT NULL,
Qué es "pre"?
> country
> `id` int(11) NOT NULL,
> `country` varchar(100) NOT NULL,
> `pre` varchar(4) NOT NULL,
Qué es "pre"?
> data
> `id` int(11) NOT NULL auto_increment,
> `name` varchar(100) NOT NULL,
> `lname` varchar(100) NOT NULL,
> `pic` varchar(100) NOT NULL,
> `id_group` int(11) NOT NULL,
> `id_user` int(11) NOT NULL,
> `id_perm` int(11) NOT NULL,
Data de qué? de los usuarios registrados? de las entradas de la agenda?
No está bien tener el id_user y el id_group: con el id_user encontrás
el grupo correspondiente....
> mails
> `id` int(11) NOT NULL auto_increment,
> `mail` varchar(100) NOT NULL,
> `top` tinyint(1) NOT NULL,
> `id_data` int(11) NOT NULL,
Qué es "top"?
Esto es una relación uno a muchos con "data"...
> perm (Permisos disponibles para los contactos)
> `id` int(11) NOT NULL auto_increment,
> `perm` tinyint(4) NOT NULL,
> `desc` varchar(50) NOT NULL,
O sea, permiso disponible para que un usuario asigne a sus contactos???
> phones
> `id` int(11) NOT NULL auto_increment,
> `phone` varchar(20) NOT NULL,
> `desc` varchar(50) NOT NULL,
> `id_ptype` int(11) NOT NULL,
> `id_dir` int(11) NOT NULL,
> `id_data` int(11) NOT NULL,
> `top` tinyint(1) NOT NULL,
Mmm... asociar una dirección a un teléfono tiene un lado muy flaco: los
móviles.
Qué es "top"?
Para qué era esta asociación?
> pmails (Mails que serán permitidos al registro)
> `id` int(11) NOT NULL,
> `pmails` varchar(100) NOT NULL,
Para todos?!?!?!?
No tiene más sentido tener mails permitidos por grupo?
Quién administra qué mails se permiten y a dónde?
> prov
> `id` int(11) NOT NULL,
> `prov` varchar(100) NOT NULL,
> `id_pais` int(11) NOT NULL,
id_pais? Pero si la tabla se llamaba "country".
Para seguir en inglés, esta tabla debería llamarse "county" o
"states"...
Decidite con el idioma porque si no, no es simple de entender... a mi
me da lo mismo cualquiera, pero sé homogéneo!
> ptypes (Tipos de teléfonos)
> `id` int(11) NOT NULL auto_increment,
> `type` varchar(25) NOT NULL,
Supongo que para móvil o fijo... pero es realmente importante saber de
qué tipo es?
> rconfig (Configuración del registro)
> `id` tinyint(4) NOT NULL,
> `desc` varchar(50) NOT NULL,
Del registro del usuario? De un registro de una tabla de la DB?
Por ser una configuración, tener solo descripción como valor no es
poco? Qué vas a configurar?
> ugroups (Grupos de usuarios)
> `id` int(11) NOT NULL auto_increment,
> `group` varchar(50) NOT NULL,
> `id_rconfig` tinyint(4) NOT NULL,
> `desc` varchar(250) NOT NULL,
Aja! El grupo tiene una configuración... pero cómo tu sistema resolverá
que hacer según esa configuración? En qué consiste configurar un grupo?
> users
> `id` int(11) NOT NULL auto_increment,
> `user` varchar(30) NOT NULL,
> `pass` varchar(64) NOT NULL,
> `chash` varchar(64) NOT NULL,
> `id_type` tinyint(4) NOT NULL,
> `id_group` int(11) NOT NULL,
Los usuarios no tienen nombre y apellido ?!?!?!?
> utypes (Tipos de usuarios)
> `id` int(11) NOT NULL auto_increment,
> `type` tinyint(4) NOT NULL,
> `desc` varchar(250) NOT NULL,
Para qué hay un id y un type? No son lo mismo?
> webs
> `id` int(11) NOT NULL auto_increment,
> `web` varchar(150) NOT NULL,
> `desc` varchar(100) NOT NULL,
> `top` tinyint(1) NOT NULL,
> `id_data` int(11) NOT NULL,
Qué es "top"?
Esto es una relación uno a muchos con las entradas en la agenda. Bien.
Y Cómo se guarda una dirección física? Para qué están las ciudades y
los paises???
> 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
Más información sobre la lista de distribución Php-avanzado