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

crear una tabla x cada usuario automáticamente al loguearse.

Estas en el tema de crear una tabla x cada usuario automáticamente al loguearse. en el foro de Mysql en Foros del Web. Hola amigos, resulta que he creado una aplicación sencilla en php y mysql a modo de ir avanzando en el aprendizaje de dichos lenguajes. Pero ...
  #1 (permalink)  
Antiguo 08/08/2010, 15:19
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
crear una tabla x cada usuario automáticamente al loguearse.

Hola amigos, resulta que he creado una aplicación sencilla en php y mysql a modo de ir avanzando en el aprendizaje de dichos lenguajes. Pero tengo un problema, como se trata de una agenda, cada usuario va a querer agendar algo distinto. Para ello ya resolvi el tema del logueo y las sesiones pero tengo una duda. ¿como genero una tabla para cada usuario? ya que de este modo cada usuario tendría su info personal. ¿Algún tutorial que lo explique? ¿es el modo adecuado de llevar a cabo esta tarea?

Desde ya muchas gracias, cualquier cosa si no me he explicado lo suficiente lo hago de nuevo. Un saludo.
  #2 (permalink)  
Antiguo 09/08/2010, 00:31
 
Fecha de Ingreso: enero-2009
Ubicación: Mexico
Mensajes: 99
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

Creo que tu solución de una tabla por cada usuario no es para nada recomendable. Lo más ortodoxo es usar tablas con llaves foráneas.

Por decir algo: tú tienes tu tabla de usuarios con los siguientes campos:

usuario |id_usuario | nombre | apellidos| contrasena| ...

Ahora la tabla de agenda quedaría así:

agenda |id_usuario| id_agenda | nombre_contacto | telefono| ...

Dode "id_usuario" es una llave foránea que hace referencia a la tabla "usuarios"

Por ejemplo si quieres saber los contactos de un usuario en particular, con el id 10, harías lo siguiente:

Código SQL:
Ver original
  1. SELECT * FROM agenda WHERE id_usuario = 10

O para insertar contactos en la agenda sería, del usuario con id 20:

Código SQL:
Ver original
  1. INSERT INTO agenda (id_usuario, nombre_contacto,...) VALUES (20, "Juan Perez ", ...)
__________________
Yo no desarrollo páginas de internet. Hago Códices Web...
  #3 (permalink)  
Antiguo 09/08/2010, 03:21
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

Hola codecweb98, primero muchisimas gracias por tu excelente respuesta. Nada más comentarte que estoy trabajando con claves foraneas.

Lo he echo de este modo

Código:
create table papa 
(
id_papa int not null auto _increment primary key,
campo varchar(30),
)TYPE=INNODB;

create table hijo 
(
id_hijo int not null primary key,
id_papa int not null,
campoejemplo int,
index(id_papa),
foreign key (id_papa) references papa(id_papa)
)TYPE=INNODB;
pero como hacer para separar el contenido ingresado por los usuarios? es decir para que cada usuario tenga su propio contenido y no altere el de los demás? existe algun modo de hacerlo sin tener que hacer una tabla por cada usuario?

Desde ya muchas gracias. un saludo
  #4 (permalink)  
Antiguo 09/08/2010, 05:18
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

Cita:
pero como hacer para separar el contenido ingresado por los usuarios? es decir para que cada usuario tenga su propio contenido y no altere el de los demás? existe algun modo de hacerlo sin tener que hacer una tabla por cada usuario?
De la misma forma en que defines la relación PADRE _ HIJO (que por otra parte no requiere dos tablas): usas el ID del usuario como FK en cada tabla donde exista la relación.
Estas son cosas que surgen del modelo Entidad-Relación y su trasposición al modelo físico (las tablas), por lo que si no manejas estos detalles yo infiero que no has visto todavía el modelo ER. Te sugiero que lo estudies antes de seguir avanzando porque te aclarará el modo de diseñar las bases sin problemas graves.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 09/08/2010, 05:47
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

Cita:
Iniciado por gnzsoloyo Ver Mensaje
... infiero que no has visto todavía el modelo ER.
google me acaba de conducir a este sitio. tal como indicas debere estudiar, gracias gnzsoloyo por darme la llave . Tu comentario sobre hacer todo en la misma tabla me descolocó totalmente en lo poco que se de bases de datos jaj hasta el momento tenia por verdad que las claves foraneas existen para relacionar dos tablas, por cierto recién estoy dando mis primeros pasos en el tema asi que leeré antes de volver. saludos.

Por lo que entendi debo crear al momento de registrar al usuario una tabla por usuario y con claves foraneas vincular las tablas. haré eso como práctica, Gracias, un abrazo

Última edición por cristian_cena; 09/08/2010 a las 05:58
  #6 (permalink)  
Antiguo 09/08/2010, 06:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

Te comento un tip: Una relación padre-hijo de una entidad usuario, por ejemplo, es un caso especial de relación 1:N o 1:1 entre una entidad consigo misma. Eso significa que en esa tabla existe un campo (al que podríamos llamar padre_id), que es FK... de la misma tabla.
Este caso tiene un par de condiciones:
a) El valor nunca debe ser igual a la clave de ese mismo campo.
b) El valor puede ser NULL. Esto contraría la herencia de PK, por lo que la relación en realidad debe resolverse programando.


Este caso se usa para resolver la administración de empleados y la jerarquía de los mismos, estableciendo que en ese caso el "padre" es el "jefe", por ejemplo. Es un modelado muy usado en administración de RR.HH.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 09/08/2010, 06:21
Avatar de cristian_cena
Colaborador
 
Fecha de Ingreso: junio-2009
Mensajes: 2.244
Antigüedad: 15 años, 5 meses
Puntos: 269
Respuesta: crear una tabla x cada usuario automáticamente al loguearse.

gracias gnzsoloyo, me estas abriendo la cabeza. un gusto haberte encontrado, ahora como dicen la práctica hace al maestro asi que ahi voy, a ver como me va, saludos che.

Etiquetas: loguearse, tablas, usuarios
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 11:23.