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
-- phpMyAdmin SQL Dump -- version 3.2.0.1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: 01-02-2011 a las 04:44:54 -- Versión del servidor: 5.5.8 -- Versión de PHP: 5.3.3 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de datos: `publicalibre` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `registros` -- CREATE TABLE IF NOT EXISTS `registros` ( `id_registro` INT(11) NOT NULL AUTO_INCREMENT, `nombre_real` VARCHAR(20) NOT NULL, `email` VARCHAR(30) NOT NULL, `password` VARCHAR(100) DEFAULT NULL, `fecha_ingreso` DATE DEFAULT NULL, `status` tinyint(1) NOT NULL, PRIMARY KEY (`id_registro`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; -- -- Volcar la base de datos para la tabla `registros` -- INSERT INTO `registros` (`id_registro`, `nombre_real`, `email`, `password`, `fecha_ingreso`, `status`) VALUES -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `usuarios` -- CREATE TABLE IF NOT EXISTS `usuarios` ( `id_usuario` INT(11) NOT NULL AUTO_INCREMENT, `id_registro` INT(11) NOT NULL, `fecha_naciemiento` VARCHAR(30) NOT NULL, `telefono_fijo` INT(15) DEFAULT NULL, `telefono_movil` INT(20) DEFAULT NULL, PRIMARY KEY (`id_usuario`), KEY `id_registro` (`id_registro`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ; -- -- Volcar la base de datos para la tabla `usuarios` -- INSERT INTO `usuarios` (`id_usuario`, `id_registro`, `fecha_naciemiento`, `telefono_fijo`, `telefono_movil`) VALUES (1, 1, '1985-06-08', 72251017, 77006240); -- -- Filtros para las tablas descargadas (dump) -- -- -- Filtros para la tabla `usuarios` -- ALTER TABLE `usuarios` 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.- Ingreso al formulario de registro: Ingreso mi Nombre Real: Pablo y también mi Email: [email protected] Entonces : INSERT INTO registros VALUES (1,'Pablo','[email protected]',123456,'2010-01-31',0); 2.- Ingreso al formulario de acceso: Ingreso mi email: [email protected] y mi contraseña: 123456. 3.- Como es usuario nuevo, el status está en 0, entonces nos direccionamos al formulario de completar sus datos: Fecha de nacimiento: 1985 Telefono Fijo: 72268701 Telefono Movil: 77006240 4.- PROCESO: Consulto el [id_registro] con el campo email de la tabla de registros. Recupero el [id_registro] y luego inserto el [id_registro], fecha de nacimiento, telefono fijo, telefono movil en la tabla usuarios. Ejemplo: INSERT INTO usuarios VALUES (1,1,1985,72268701,77006240); 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