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

Duda (no técnica) en el funcionamiento de una aplicación

Estas en el tema de Duda (no técnica) en el funcionamiento de una aplicación en el foro de Java en Foros del Web. Hola. He empezado con un nuevo proyecto (aplicación web online colaborativa) usando java, y se me ha presentado una duda a la hora de hacer ...
  #1 (permalink)  
Antiguo 12/02/2013, 08:10
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Duda (no técnica) en el funcionamiento de una aplicación

Hola. He empezado con un nuevo proyecto (aplicación web online colaborativa) usando java, y se me ha presentado una duda a la hora de hacer la lógica de la aplicación. Si no fuera el sitio adecuado por favor moved el hilo.

En pocas palabras, un usuario tiene una lista de objetos creados por él. Esas listas pueden ser privadas o públicas para que otros puedan verlas y guardarlas como favoritas (realmente sería un enlace a la lista original). Mi duda surge en el momento en que el usuario creador de la lista borra una que está marcada como pública, y que está en la lista de favoritos de otros usuarios.

Tengo estas opciones:

a) Borrar la lista de la bd, y remover los enlaces de los otros usuarios hacia esta lista, por lo que no tendrían nunca más acceso a esa lista.

b) No dejar borrar la lista por estar compartida. Una opción que no me gusta mucho. Prefiero que el usuario tenga libertad de borrar información creada por él siempre que quiera, pero es otra opción.

c) Si la lista tiene "seguidores" preguntarle al usuario si realmente quiere dejar a X usuarios sin su lista.

Alguna idea más?
  #2 (permalink)  
Antiguo 12/02/2013, 08:21
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Duda (no técnica) en el funcionamiento de una aplicación

La opción c yo la tendría siempre, no afecta a la lógica pero es información útil.

Con respecto a borrar, la página se tiene que crear dinámicamente a partir de los datos en la BBDD, por lo que si la base de datos está bien construida, al borrar un registro todos los relacionados con él deberían ser borrados. Es lo que se llama integridad referencial y borrado en cascada.

http://www.aulaclic.es/sql/b_8_1_1.htm
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 12/02/2013, 08:41
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Duda (no técnica) en el funcionamiento de una aplicación

Hola Xerelo. Estoy usando Hibernate como implementación de jpa 2.0 para framework de persistencia, y al crear una relación bidireccional de @ManyToMany (que es la relación que necesito para poder compartir una misma lista entre usuarios), tengo que quitar manualmente los enlaces que relacionan un usuario con una lista.

Puedes leer más aquí: http://stackoverflow.com/questions/1...esponding-join , concretamente en el párrafo:

The groups and users are not combined with each other. I mean, after deleting User1 instance from Group1.users, the User1.groups collections is not changed automatically (which is quite surprising for me),

Pero bueno, al margen de peculiaridades de Hibernate, le seguiré dando vueltas a cómo tratar este problema.

Se me ha ocurrido que una solución menos dura sería que si el usuario intenta borrar una lista, buscar si está compartida con otros usuarios. Si lo está entonces avisar al usuario y dejarle decidir:

a) O borrarla directamente. Evil mode on :)

b) Borrarla de su cuenta, pero dejarla compartida para el resto. Esta opción me parece algo más sensata, e implicaría asignarle esa lista a algún otro usuario. Podría tener un usuario por defecto, digamos el sistema, que sea quien "acoja" las listas huérfanas. Otra opción sería asignársela a cualquier otro usuario que tuviera la lista en sus favoritos.
  #4 (permalink)  
Antiguo 12/02/2013, 09:43
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Duda (no técnica) en el funcionamiento de una aplicación

Nada te impide añadir un borrado manual de los seguidores antes de borrar la lista del usuario.

Y para eso tipo de relaciones creo que es mejor tener una tabla intermedia.

http://smehrozalam.files.wordpress.c...-to-many-1.jpg

http://www.forosdelweb.com/f45/many-...ernate-616705/
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 12/02/2013, 09:47
 
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 185
Antigüedad: 12 años, 8 meses
Puntos: 29
Respuesta: Duda (no técnica) en el funcionamiento de una aplicación

Cita:
Iniciado por Xerelo Ver Mensaje
Nada te impide añadir un borrado manual de los seguidores antes de borrar la lista del usuario.

Y para eso tipo de relaciones creo que es mejor tener una tabla intermedia.

http://smehrozalam.files.wordpress.c...-to-many-1.jpg

http://www.forosdelweb.com/f45/many-...ernate-616705/

Gracias por los links.

Sí, justo eso es lo que hago, un borrado manual en el lado que sea necesario. Pero el tema técnico lo tengo ya solucionado. Mi pregunta es más por si a alguien más se le ocurría una alternativa elegante y bonita al problema :)
__________________
www.sttorybox.com , el lugar de las historias :)

Etiquetas: Ninguno
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 07:10.