Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Tabla con relación de registro de usuarios.

Estas en el tema de Tabla con relación de registro de usuarios. en el foro de Bases de Datos General en Foros del Web. Tengo una gran duda por la falta de conocimiento en este tema de bases de datos relacional. Bueno es la siguiente: He creado dos tablas, ...
  #1 (permalink)  
Antiguo 31/01/2011, 23:28
 
Fecha de Ingreso: septiembre-2010
Mensajes: 147
Antigüedad: 13 años, 7 meses
Puntos: 3
Tabla con relación de registro de usuarios.

Tengo una gran duda por la falta de conocimiento en este tema de bases de datos relacional.

Bueno es la siguiente: He creado dos tablas, dejo un pantallazo



Como verán la tabla registros es la tabla Padre y la tabla usuarios es la tabla Hijo.

Ahora dejo la pantalla del formulario de Registro:


PASO 1:
Si yo me registro en esté formulario (el de arriba):
Ingreso mi nombre real y luego mi correo electrónico, entonces llamo a un método que inserta en la tabla registros, el nombre real, el correo electrónico, una password que se genera automáticamente(es enviada por correo), la fecha de ingreso, y por último en status ingreso un número boleando, para identificar si él usuario es nuevo o antiguo.

PASO 2:
Si se cumple el PASO 1, entonces el usuario está apto para ingresar a la pantalla de acceso:


----

Bueno si se fijan en la tabla registros tengo un campo llamado status el cual es de tipo Booleano, ósea 0 ó 1. El Usuario si es nuevo se registra en el campo status, un 0.

Entonces si el usuario hace ingreso en la pantalla de acceso:


a través de una consulta SQL yo voy a capturar ese campo status y voy a identificar si el usuario es nuevo "0" o es antiguo "1". ¿Y esto para qué?

Es para poder hacer el llenado de la tabla usuarios!

Ósea: Si yo me registro en el sistema con mi nombre real y correo electrónico, el sistema me va a identificar como nuevo usuario a través del campo status que va tener un valor de 0, entonces me va a enviar a un nuevo formulario donde yo haré ingreso ahora de los datos de esta segunda tabla que es usuarios.


Y aquí es donde yo estoy completamente parado.

No sé mucho de Bases de datos Relacional.


Dejo el Codigo SQL:
Código SQL:
Ver original
  1. -- phpMyAdmin SQL Dump
  2. -- version 3.2.0.1
  3. -- http://www.phpmyadmin.net
  4. --
  5. -- Servidor: localhost
  6. -- Tiempo de generación: 01-02-2011 a las 04:44:54
  7. -- Versión del servidor: 5.5.8
  8. -- Versión de PHP: 5.3.3
  9.  
  10. SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
  11.  
  12.  
  13. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  14. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  15. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  16. /*!40101 SET NAMES utf8 */;
  17.  
  18. --
  19. -- Base de datos: `publicalibre`
  20. --
  21.  
  22. -- --------------------------------------------------------
  23.  
  24. --
  25. -- Estructura de tabla para la tabla `registros`
  26. --
  27.  
  28. CREATE TABLE IF NOT EXISTS `registros` (
  29.   `id_registro` INT(11) NOT NULL AUTO_INCREMENT,
  30.   `nombre_real` VARCHAR(20) NOT NULL,
  31.   `email` VARCHAR(30) NOT NULL,
  32.   `password` VARCHAR(100) DEFAULT NULL,
  33.   `fecha_ingreso` DATE DEFAULT NULL,
  34.   `status` tinyint(1) NOT NULL,
  35.   PRIMARY KEY (`id_registro`)
  36. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  37.  
  38. --
  39. -- Volcar la base de datos para la tabla `registros`
  40. --
  41.  
  42. INSERT INTO `registros` (`id_registro`, `nombre_real`, `email`, `password`, `fecha_ingreso`, `status`) VALUES
  43. (1, 'Pablo', '[email protected]', 'e10adc3949ba59abbe56e057f20f883e', '2011-01-31', 0);
  44.  
  45. -- --------------------------------------------------------
  46.  
  47. --
  48. -- Estructura de tabla para la tabla `usuarios`
  49. --
  50.  
  51. CREATE TABLE IF NOT EXISTS `usuarios` (
  52.   `id_usuario` INT(11) NOT NULL AUTO_INCREMENT,
  53.   `id_registro` INT(11) NOT NULL,
  54.   `fecha_naciemiento` VARCHAR(30) NOT NULL,
  55.   `telefono_fijo` INT(15) DEFAULT NULL,
  56.   `telefono_movil` INT(20) DEFAULT NULL,
  57.   PRIMARY KEY (`id_usuario`),
  58.   KEY `id_registro` (`id_registro`)
  59. ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
  60.  
  61. --
  62. -- Volcar la base de datos para la tabla `usuarios`
  63. --
  64.  
  65. INSERT INTO `usuarios` (`id_usuario`, `id_registro`, `fecha_naciemiento`, `telefono_fijo`, `telefono_movil`) VALUES
  66. (1, 1, '1985-06-08', 72251017, 77006240);
  67.  
  68. --
  69. -- Filtros para las tablas descargadas (dump)
  70. --
  71.  
  72. --
  73. -- Filtros para la tabla `usuarios`
  74. --
  75. ALTER TABLE `usuarios`
  76.   ADD CONSTRAINT `usuarios_ibfk_1` FOREIGN KEY (`id_registro`) REFERENCES `registros` (`id_registro`);



También dejo algo de lo que se me estaba ocurriendo xD

Código Pensamiento:
Ver original
  1. 1.- Ingreso al formulario de registro: Ingreso mi Nombre Real: Pablo y también mi Email: [email protected]
  2. Entonces : INSERT INTO registros VALUES (1,'Pablo','[email protected]',123456,'2010-01-31',0);
  3.  
  4. 2.- Ingreso al formulario de acceso: Ingreso mi email: [email protected] y mi contraseña: 123456.
  5.  
  6. 3.- Como es usuario nuevo, el status está en 0, entonces nos direccionamos al formulario de completar sus datos:
  7.  
  8. Fecha de nacimiento: 1985
  9. Telefono Fijo: 72268701
  10. Telefono Movil: 77006240
  11.  
  12.  
  13. 4.- PROCESO:
  14.  
  15. Consulto el [id_registro] con el campo email de la tabla de registros.
  16. Recupero el [id_registro] y luego inserto el [id_registro], fecha de nacimiento, telefono fijo, telefono movil en la tabla usuarios.
  17.  
  18.  
  19. Ejemplo:  INSERT INTO usuarios VALUES (1,1,1985,72268701,77006240);
  20.  
  21. Y ahora realizo un UPDATE en la tabla registros tomando en cuenta el valor id_registro como filtro para actualizar el campo status=0 a status=1.


Estoy totalmente inventado cosas, eso de arriba. No tengo idea si es una forma adecuada de hacer un razonamiento.



Espero que logren entenderme, y también espero de la ayuda de esta grandiosa comunidad de programadores. :)

Saludos

Última edición por ZeThito; 01/02/2011 a las 00:23
  #2 (permalink)  
Antiguo 02/02/2011, 03:50
 
Fecha de Ingreso: enero-2011
Ubicación: Castellon
Mensajes: 39
Antigüedad: 13 años, 2 meses
Puntos: 5
Respuesta: Tabla con relación de registro de usuarios.

No entiendo que pretendes... Si tienes un usuario ya registrado porque quieres que vuelva a poner su nombre real y su email? si el ya tiene contraseña no deverias obligarle a volver a poner los datos...

Yo lo que haria es solo una tabla usuarios.. Con todos los campos... Entonces en la web pido email y contraseña si estan en mi tabla pues le dejo entrar todo correcto y sino pues les mando al formulario de registro que contenga todos los datos que necesitas... También puedes hacer un link al lado de la entrada para la gente que no esta registrada.

Luego una vez rellenados sus datos debera acceder o activar su cuenta... Cuando esta activa le das estatus true y sino estatus false.

Si el usuario que accede tiene estatus false le pides que "active" su cuenta..

Además puedes usar el estatus para si te ponen mal la contraseña x veces poner el estatus a false y desactivar la cuenta hasta x tiempo..

No se si me explicado o a lo mejor no he entendido bien lo que querias... el algoritmo seria algo asi:

Entro en el index y muestro formulario entrada con link a registrarme.
Si relleno formulario de entrada:
Comprobar si email esta en usuarios, que la contraseña coincide y que el estatus es true.
si es asi le dejo entrar o lo que sea que hagan tus usuario
sino le mando a una pagina de error donde le digo que error es
Sino si pulsa link registrarse:
Envio a pagina registro
Compruebo datos enviados (mail correcto y que no este en mi bd, etc)
si correcto
mando contraseña y link activacion
Sino
mando errores

Si el usuario entra desde link activacion:
pido contraseña y usuario
Si correcto activo cuenta
sino error.
  #3 (permalink)  
Antiguo 06/02/2011, 11:44
 
Fecha de Ingreso: diciembre-2010
Mensajes: 7
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Tabla con relación de registro de usuarios.

quizas puedas usar la relacion entre tablas con un inner join desde mysql para unirambas tablas y comprobar si es del tipo "0" o "1".

Etiquetas: registro, usuarios, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:56.