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

Esquema almacenar accesos al sistema

Estas en el tema de Esquema almacenar accesos al sistema en el foro de Bases de Datos General en Foros del Web. Hola buenas, Me gustaría diseñar una base de datos para poder almacenar los accesos de los usuarios al sistema. Uso Mysql. A mi sistema se ...
  #1 (permalink)  
Antiguo 25/06/2011, 06:13
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Esquema almacenar accesos al sistema

Hola buenas,

Me gustaría diseñar una base de datos para poder almacenar los accesos de los usuarios al sistema. Uso Mysql. A mi sistema se accede por correo electrónico y password. Cada usuario puede tener una o varias cuentas de correo electrónico, por lo que tengo una tabla users y una users_emails con una relacion 1 / N. Por otro lado he creado una tabla users_access, donde almaceno el id del usuario en cuestión y otros datos como ip, etc. Ahora bien, si quiero tener en cuenta desde que dirección (email) se hizo login, como lo haría?? si hago una relación y posteriormente el usuario borrar esa cuenta de su perfil, todo se va al garete? por temas legales me gustaría que un usuario borre por completo sus datos si así lo desea.

Un saludo!
  #2 (permalink)  
Antiguo 28/06/2011, 18:39
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Esquema almacenar accesos al sistema

Puedes resolverlo con claves compuestas, por ejemplo:

Tabla users (id_user, nombre, etc), donde id_user es primary key.
Tabla users_mails (id_cuenta, id_user, mail, etc), donde id_cuenta y id_user es la primary key compuesta, y id_user es foreign key haciendo referencia a users.id_user.
Tabla users_access (id_cuenta, id_user, ip, fecha, etc) donde id_cuenta y id_user es foreign key compuesta haciendo referencia a la primary key de users_mail.

En cuanto al borrado de cuentas, puedes gestionar diferentes opciones:

Si no te interesa mantener la información cuando un usuario borra una cuenta, eliminas el registro de la tabla users_mails y todos los registros de la tabla users_access que se correspondan a la cuenta, esto generalmente se hace en forma automática si creas la foreign key con la opción on delete cascade.

Si te interesa mantener la información cuando un usuario borra una cuenta, le puedes agregar un campo estado a la tabla users_mails para indicar que la cuenta está eliminada, de esta manera no eliminas físicamente el registro y puedes mantener la integridad referencial.

El mismo concepto puede aplicar si la aplicación permite borrar usuarios.

Saludos
  #3 (permalink)  
Antiguo 29/06/2011, 10:56
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 8 meses
Puntos: 165
Respuesta: Esquema almacenar accesos al sistema

Hola buenas,

Muchas gracias por tu ayuda. El tema de borrar o no borrar es más por el tema legal, ya que si no me equivoco, si borro, tengo quye borrarlo por completo.

Que quiere decir esto? que si un usuario borrar su cuenta de correo, borraría el acceso de la tabla.. y por lo tanto no sería muy real.. al final me decantaré por no incluir el campo mail dentro de la tabla de acesos, y por otro lado, intentaré tener un registro de accesos por cuentas.. lo tengo que acabar de pensar..

Muchas gracias por tu tiempo!

Etiquetas: almacenar, esquema, sistema, bases-de-datos
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 23:54.