[Php-avanzado] [PHP-Avanzado] Tesis Diego Oliva
Oliva, Diego M.
diego en olivadiegom.com.ar
Jue Nov 27 19:53:39 ART 2008
Buenas tardes,
Leo, éste sábado no voy a poder ir, asi que voy el miércoles, no
obstante, para tratar de avanzar un poco, te mando mi "proyecto", asi
como las tablas normalizadas... y un par de dudas...
Bue, lo mío era la agenda, empezando, tiene el login y sector
registro de nuevo usuario, el cual debe completar nombre de usuario,
contraseña, y sus datos para la agenda (los que disponga), pero
obligados nombre, apellido, dirección, teléfono y mail. Va a pasar por
una validación, escalable por el administrador del sistema, la cual
tendría, aceptación automática, validacion contra autenticación de mail
por vinculo url (ampliable a soporte de restricción de registro contra
dominios permitidos de mail) o por último, validación por el administrador.
Finalmente, una ves dentro, podrá tanto modificar sus datos (que
serán visibles para cualquier usuario) como agregar contactos nuevos,
los datos posibles a ingresar son: Nombre, Apellido, Direccion o
Direcciones (con descripcion, casa, trabajo, etc...). Teléfono o
teléfonos fijos, los cuales van a estar ligados a las direcciones,
celulares (c/descripción), mails, paginas web (también con descripción)
y una foto del contacto. Los teléfonos fijos caen dentro de una
categoria de tipo, y en el caso de no encontrar la categoria requerida,
se envía una notificación al administrador para que, en el caso de
aceptar la categoría, pueda ingresarla al sistema. El teléfono que quede
en espera quedará asignado a una categoría llamada A Designar.
Por otro lado, cada contacto también podrá ser categorizado
dentro de grupos, los cuales estarán regidos por las mismas reglas que
los tipos de los teléfonos. Y también, será posible clasificar un
contacto de "Público", de forma tal que cualquier otro usuario pueda ver
dichos datos.
También podrá consultar la agenda, buscar por nombre o apellido,
listar por letra, en todos o por grupos, modificar los datos de un
contacto, eliminar contactos, etc...
Creo que no me estoy olvidando de nada por ahora... Queda ver si
hice bien la normalización... especialmente porque tengo una duda...
El sistema esta hecho de forma tal que cada vez que se registre un
usuario, los datos de dicho usuario quedan en la tabla datos, y sin
intervención del usuario van a quedar asignados al grupo, "Usuarios".
Ahora, al querer recuperar los datos de un usuario, por ejemplo, al
loguearse, para encontrar dichos datos tengo que recorrer la tabla
Datos, comparando que el id_usuario corresponda con el usuario y que
además el grupo sea Usuario, puede hacerse, no es dificil, pero algo en
mi cabeza me dice que seria mucho más práctico que este el campo
ID_DATOS en la tabla usuario, como está ahora en negrita... pero según
creo, no esta bien que dicho campo exista... asi que... esa es mi
duda... ¿Cómo hago eso?
Y... ya esta... creo que lo único que me queda por aclarar es que
los nombres de los campos y las tablas son simlemente explicativos y no
van a ser los que use, y que el caso de los tipos de los datos,
posiblemente cambie algunas longitudes en el transcurso del proyecto...
Como todos, cualquier sugerencia es bienvenida...
============================================
Tablas ->
============================================
Mails_permitidos:
ID (INT)
MAILS
Usuarios:
ID (INT)
**ID_DATOS (INT)
*USUARIO (VARCHAR 20)
CONTRASEÑA (VARCHAR 64)
HASH_CREACION (VARCHAR 64)
ACTIVO (BOOLEAN)
ADMINISTRADOR (BOOLEAN)
Telefonos:
ID (INT)
TELEFONO (VARCHAR 15)
INTERNO (VARCHAR 5)
ID_TIPO (INT)
ID_DIRECCION (INT)
ID_DATOS (INT)
PRINCIPAL (BOOLEAN)
Tipo_Tel:
ID (INT)
NOMBRE (VARCHAR 15)
ACTIVO (BOOLEAN)
Datos:
ID (INT)
NOMBRE (VARCHAR 50)
APELLIDO (VARCHAR 50)
FOTO (VARCHAR 50) (Cuando sepa donde las voy a guardar seguro
lo vario...)
PUBLICO (BOOLEAN)
ID_GRUPO (INT)
ID_USUARIO (INT)
Grupos:
ID (INT)
NOMBRE (VARCHAR 30)
ACTIVO (BOOLEAN)
Mails:
ID (INT)
MAIL (VARCHAR 50)
ID_DATOS (INT)
PRINCIPAL (BOOLEAN)
Webs:
ID (INT)
WEB (VARCHAR 100)
DESCRIPCION (VARCHAR 50)
ID_DATOS (INT)
PRINCIPAL (BOOLEAN)
Moviles:
ID (INT)
MOVIL (VARCHAR 15)
DESCRIPCION (VARCHAR 50)
PRINCIPAL (BOOLEAN)
ID_DATOS (INT)
Direcciones:
ID (INT)
DIRECCION (VARCHAR 100)
DESCRIPCION (VARCHAR 50)
ID_CIUDAD (INT)
PRINCIPAL (BOOLEAN)
Ciudades:
ID (INT)
CIUDAD (VARCHAR 30)
PREFIJO (VARCHAR 10)
ID_PROVINCIA (INT)
Provincias:
ID (INT)
PROVINCIA (VARCHAR 30)
PREFIJO (VARCHAR 10)
ID_PAIS (TINYINT)
Paises:
ID (TINYINT)
PAIS (VARCHAR 30)
PREFIJO (VARCHAR 3)
===========================================
--
Oliva, Diego Martín
www.olivadiegom.com.ar
diego en olivadiegom.com.ar
Tel.: +542235530137
Mar del Plata, Bs. As.
Argentina.
Más información sobre la lista de distribución Php-avanzado