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-- 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
(1, 'Pablo', '[email protected]', 'e10adc3949ba59abbe56e057f20f883e', '2011-01-31', 0);
-- --------------------------------------------------------
--
-- 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 original1.- 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