Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Borrando usuario en foros

Iniciado por yens, 01 de Diciembre de 2006, 04:38:53 PM

« anterior - próximo »

yens

Muy buenas gente!! Pues eso que, estoy llevando acabo un proyectillo (los que leis mi blo sabreis de que hablo xD) y estaba ahora mismo metiendo funciones de borrado de usuarios. El caso es que si quiero borrar mediante consulta SQL un usuario registrado del foro que ha posteado en algún post, me salen warnings de que no se puede eliminar pues tiene otros datos en otras tablas relacionados con el propio usuario. Vale, podría borrar sus posts, pero no me interesa, y la cosa empeora cuando deseo borrarlo y además es creador de otros temas y no solo como posteador. Se os ocurre algo?
He pensado en utilizar una cuenta especial de usuario para que cuando borre el usuario, se cambie de propietario al usuario "especial" pero va ser que es un poco "feo" xD

Alguien ha tenido que trabajar con ello? Gracias!

Vicente

Ponle un flag que te diga si está dado de alta o de baja (un borrado lógico. Cuando lo borras, pones el flag de baja a true).

Un saludo!

Vicente

yens

Sí eso también lo habia pensado para las opciones de baneado temporal... xD pero un borrado lógico nosé hasta que punto... es decir, si otro usuario quisiese registrarse con ese nick de nuevo por cualquier motivo.. aunque bueno, todo tendra sus limitaciones jeje. Veré si se me ocurre alguna idea mas!

zupervaca

Si no vas a borrar sus post logicamente nadie podria usar ese nombre de usuario ya que tendria los post como suyos, o como minimo parecerian suyos.

Suerte.

Vicente

ZV te ha dado un punto muy válido. Tampoco te comas mucho el tarro con este problema ;) Un saludo!

Vicente

yens

Bueno, al final optaré por una desactivación del nombre sin llegar a borrarse... malo será que tenga que borrar muchas cuentas de usuario  :P

shephiroth

Puedes hacer ademas de lo del flag, un cambio de nombre para que otro usuario pueda utilizar ese mismo nick. Por ejemplo cambiar el usuario por "usuario (borrado)". De esta manera ademas se reflejaria en el foro que ese usuario ha sido borrado xDD

SALUDOS ^^

zupervaca

Segun tu seria algo asi?


post de pepe:
hola como te va

despues de borrar ese usuario:

post de pepe (borrado):
hola como te va

Alguien se da de alta con pepe:

post de pepe:
soy el nuevo pepe
post de pepe (borrado):
hola como te va

Solo tiene un problema, es borrar el nuevo pepe

post de pepe (borrado):
soy el nuevo pepe
post de pepe (borrado):
hola como te va

Lo normal es que se haga el borrado logico que dice vicente y cuando quieres cargarte un usuario por lo que sea, se borran todos sus mensajes, post, etc. para ello tendrias que borrar todos sus historicos antes, aunque todo depende de como este montada la base de datos.
Aunque yo no haria borrado de usuario, mas bien solo pondria los ban.

yens

Supervaca, me referia al problema que daria borrar de forma fisica un usuario, conllevaria problemas con el resto de relaciones de tablas de la base de datos, porque habria temas sin creador, si los quisieses borrar, intervendrian relaciones de otros usuarios que han posteado... etc. De todas formas, igual que para los posts, para usuarios usare borrados logicos, aunque no creo que sea necesario borrar usuarios, pero igual si banearlos para lo que usare tags de baneado.

Como digo, ya ta solucionado pero gracias por tratar de aportar!! Nos vemos gente que tengo la cabeza echa un bombo xD

bnl

Yo he hecho bastantes aplicaciones de gestión y lo que se suele hacer dependiendo del caso es o bien una baja fisica y un borrado en cascada o lo de la baja logica que lo puedes implementar o bien con un flag q indique q esta de baja logica o bien con un campo de fecha de baja (q este a null si esta de alta) por si te interesa saber hasta cuando ha estado activo.

Si optas por la baja logica tendras que tenerlo en cuenta al realizar las SELECTs, por ejemplo para validar el usuario y contraseña.

En un foro no tiene sentido la baja logica
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

yens

Es que el foro no está solo, me explico, las credenciales del usuario serán las mismas tanto para el resto de la aplicación, como para los foros, de ahí la cuestión :p

shephiroth

Si no es solo el foro la cosa cambia.

Yo si me encontrase en esa situacion, de cara al foro le atribuiria los post q tenga a un usario especial "borrados", volvaría todos los datos que te interesasen a una tabla "eliminados/baneados" y lo mismo haría con los datos que te sirvieran en el resto del programa.

SALUDOS ^^

bnl

Esta ultima solucion me parece que es complicarse mucho.

Si te interesa que solo este activo en unas secciones y en otras no (como el foro) podrias implementar un sistema de privilegios y seria tan sencillo como al darle de baja en el foro quitarle los privilegios para acceder (o postear en el foro)
Mi web: http://www.brausoft.com/
No sabían que era imposible, así que lo hicieron.

yens

Weno, como ya dije opté por un simple flag, un borrado lógico y me servirá, total es muy extraño que tenga que borrar usuarios para lo que toy trabajando.. jeje






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.