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

Algunas dudas lógicas. Doble login y optimizacion de DB

Estas en el tema de Algunas dudas lógicas. Doble login y optimizacion de DB en el foro de Programación General en Foros del Web. Hola a todos: Tengo algunas preguntas que son un poco chorras pero que bueno, me va a venir bien. Pues bueno, tengo que hacer una ...
  #1 (permalink)  
Antiguo 07/06/2009, 11:18
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 3 meses
Puntos: 44
Algunas dudas lógicas. Doble login y optimizacion de DB

Hola a todos:
Tengo algunas preguntas que son un poco chorras pero que bueno, me va a venir bien.

Pues bueno, tengo que hacer una pequeña aplicación web que consta de un juego de tipo RPG en el que un user puede batallar etc..

Mi pregunta es, suponiendo que tengo una tabla en la DB 'usuarios', cual sería la forma más eficiente de almacenar su inventario, sabiendo que:

cada usuario puede tener uno o varios items;
cada item puede ser poseido por mas de un user;
la cantidad de ítems que se posee debe ser fácilmente accesible para podertrabajar en las battles con dicho numero;
los ítems deben tener un campo 'enTienda' que me diga 1 si es vendible o 0 si no;

Yo lo que tengo es una tabla ítems con un campo 'id' que es autoincrement (solo para que no sea repetido) y un campo 'id_poseedor' que se relaciona con el 'id_usuario'. Pero claro, a la hora de usar el ítem especifico tengo que hacer una cantidad de llamadas a la base de datos que no se si es lo más optimo, ya que por ejemplo, cuando uso un objeto debería eliminar otra entrada de la base de datos (a no ser que defina un campo cantidad).

¿Cómo sería mas óptimo? Asi funciona, pero es una carga a la base de datos en cada llamada bestial.


Segunda pregunta. Tontería, chrorrada, pero, como haga un rand() double. ¿Castings?

Tercera pregunta y la que mas loco me vuelve.
Uso varialbes POST para validar los cambios de mapa y que no hagan trampas los usuarios, así que tengo la necesidad de evitar en doble-login, ya que si otro (persona o algo que abra otro navegador) cambia de mapa, al primero que inicio sesion le quitan esa validacion ,(la variable post cambia, por lo tanto la validacion tambien) y debería hacer logout y login de nuevo para poder acceder a su datos, y aun así si el otro user vuelve a cambiar de mapa antes que este que tuvo que salir, la puerde de nuevo.

Ete aqui que tengo el problema. Yo el usuario lo tengo guardado en un objeto serializado en una variable de la sesion. Para acceder a los datos, lo 'unserializo' y accedo a sus métodos.
Cuando hago login, seteo una variable isLogueado, almacenada en la base de datos, a 1. Así muy bien, impido el doble login. Pero el problema esta en el logout.

Si hago logout por el método que tengo implementado ($usuario->Logout();), cambio la variable a 0, destruyo la session, y ya se puede volver a hacer login. Pero si la sesion se destruye cerrando el navegador o similar, el valor sigue seteado a 1 y no puedo iniciar sesion, ya que interpreta que otro user está usándola.
¿Cómo lo puedo solucionar?

Gracias por adelantado y gracias por leer el tostón, pero es que no encuentro solucion a mis dudas.
  #2 (permalink)  
Antiguo 07/06/2009, 12:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Algunas dudas lógicas. Doble login y optimizacion de DB

Tema trasladado desde PHP
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:30.