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

¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Estas en el tema de ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro? en el foro de Bases de Datos General en Foros del Web. Tengo en mente hacer un foro, y antes de comenzar, quiero tener en la cabeza la idea de como funcionaría todo, pero puesto que llevo ...
  #1 (permalink)  
Antiguo 21/09/2007, 10:19
 
Fecha de Ingreso: abril-2007
Mensajes: 213
Antigüedad: 17 años, 7 meses
Puntos: 0
¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Tengo en mente hacer un foro, y antes de comenzar, quiero tener en la cabeza la idea de como funcionaría todo, pero puesto que llevo poco con bases de datos tengo algunas ideas un tanto extrañas de como programar la parte de mensajes nuevos no leídos, y el orden de los mensajes.

Para los mensajes no leídos, se pondría en una tabla los campos iduser, idmensaje, leidono.

Cada vez que se publicase un mensaje, para todos los usuarios se rellenarian los datos de la siguiente manera:

P.ej.: iduser = 1, idmensaje = 5, leidono = no.

Cuando un usuario lea el mensaje, se modificaria lo de leidono y se pondría si.

-------

Luego para mostrar los mensajes, habria dos id, un tema por ejemplo de id 5 tendria una segunda id para mostrar el orden de paginacion. La segunda ID vendría dada por la resta de 1 a la ultima id cada vez que se enviase un mensaje nuevo. La primera segunda ID sería un numero muy alto, por ejemplo 99999999999999999999999999999999999999999999999999 999, cosa que para "estropear" este sistema había que estar enviando mensajes durante bastantes milenios XD.

-------

Las ideas que tengo harían el foro funcionar perfectamente, pero quizás saturarían demasiado la base de datos, lo que pregunto es si alguien tiene alguna idea más de como programar estos aspectos.

Gracias.
  #2 (permalink)  
Antiguo 24/09/2007, 02:39
 
Fecha de Ingreso: febrero-2007
Mensajes: 1.292
Antigüedad: 17 años, 9 meses
Puntos: 13
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Cita:
Iniciado por carlosgs91 Ver Mensaje
Cada vez que se publicase un mensaje, para todos los usuarios se rellenarian los datos de la siguiente manera:

P.ej.: iduser = 1, idmensaje = 5, leidono = no.
Si el foro crece y tienes bastantes usuarios esta tabla será bastante grande!
porque no insertas solo el usuario y los mensajes que ha leido... si no está en la tabla es que no lo ha leido. Solo es una idea que se me ha ocurrido.

Un saludo
  #3 (permalink)  
Antiguo 25/09/2007, 06:00
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Lo mejor es insertar en la tabla la pareja de "usuario-id_mensaje". Cuando el usuario lea un mensaje se borra esa pareja de la tabla. En la tabla solo estarán los que no han leido.

De esta manera la tabla no tiene un crecimiento indefinido.
__________________
Kelpie
  #4 (permalink)  
Antiguo 25/09/2007, 19:49
Avatar de kunndry  
Fecha de Ingreso: abril-2004
Ubicación: Alicante / España
Mensajes: 247
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Buenas,

Yo creo que la opción de seyko es más optima, aunque todo depende del foro,numero de usuarios y lecturas, pero yo creo que en general lo mejor seria tener una tabla adicional donde se emparejaran usuarios y temas leidos.

Yo creo que en general, lo que más va a ocurrir es que un usuario NO leas un mensaje, ademas, cuando hagas la consulta para ver que mensajes ha leido, esta seria la que menos resultados daria.

Imagina en este foro, que se guardaran en una tabla todos los mensajes que no has leido...

De todas formas te aconsejo que te bajes algun foro prefabricado como phpbb o smf y mires el esquema que tienen, creo recordar que jforum (no se si llamaba asi) que era para jboss venia incluso con el modelo de datos en una imagen para verlo. (Bueno, más que el modelo de datos, era el esquema de tablas, pero para el caso mejor aun)
  #5 (permalink)  
Antiguo 26/09/2007, 05:55
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 9 meses
Puntos: 8
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Imagínate, Kunndry que en este foro se guardaran en una tabla TODOS los mensajes que sí se han leído desde que se creó...

Y sigue imaginado cómo será la tabla dentro unos años...
__________________
Kelpie
  #6 (permalink)  
Antiguo 27/09/2007, 12:28
Avatar de kunndry  
Fecha de Ingreso: abril-2004
Ubicación: Alicante / España
Mensajes: 247
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Kelpie....tu razonamiento es bueno,

Esta tabla crecera mucho, pero creo que la otra tabla crecera mucho más.

¿No?

El ejmplo que pongo en forosdelweb por ejemplo, ¿Qué tabla piensas que seria más grande? La que guardara los mensajes leidos, o ¿la que guardara los no leidos?, creo que es obvio.
  #7 (permalink)  
Antiguo 29/09/2007, 00:47
Avatar de periCo[un]Ltd.  
Fecha de Ingreso: agosto-2003
Ubicación: Mexico
Mensajes: 146
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Y para que guardas en la BD que mensajes se han leido? Mejor guarda la hora y fecha del ultimo acceso del usuario, y la comparas con la fecha de creacion de los mensajes, los que fueron creados despues los marcas como nuevos y ya.

Tal vez no resuelves el problema de saber que se ha leido y que no, pero se realista, en un foro si entras y no lees un mensaje nuevo en ese momento dificilmente lo leeras despues.

Es diferente a un buzon de correo, ahi forzosamente cada mensaje debe marcarse como leido o no leido, pero ten en cuenta que cada buzon es monousuario, ¿me explico?

Ademas, ¿para que te molestas en programar algo que ya se ha hecho, y que puedes usar libremente? (en el caso de phpbb) a menos que quieras algo muy especifico, que el sistema en cuestion no llene tus necesidades, no tiene caso hacerlo nuevo.
__________________
I miss you, like the desert miss the rain

Última edición por periCo[un]Ltd.; 29/09/2007 a las 01:17
  #8 (permalink)  
Antiguo 29/09/2007, 13:18
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

En lo particular me agrada mas la idea de Kunndry, efectivamente yo no me he leido ni la mas misera parte de FDW.....

Kelpie, imagina que cada que crees un foro vas a obligar al motor de BD a crear N registros para ese nuevo foro..... (donde N es la cantidad de usuarios en el foro...) la creación de un nuevo foro sería un duro golpe a la BD no?, en cambio, si solo ingresas un solo registro (el del usuario/foro en cuestion) por cada foro que lees es menos traumático para tu BD no crees?

Por otra parte, cada que se den de alta nuevos usuarios, vas a tener que registrarlos en todos los foros creados (sip, hasta el primer foro que se creo en el server, toda la historia!), para que se identifique que no los ha leido.... suena criminal no? :p

Además, CarlosGS91, ¿tienes pensado si vas a marcar como no leídos los foros recien modificados? esto tambien es práctico con la solución de Kunndry, por que solo habrías de eliminar las entradas de lectura que se han creado (no volver a meter a todos los usuarios, incluyendo los nuevos)
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....

Última edición por Gabo77; 29/09/2007 a las 13:26
  #9 (permalink)  
Antiguo 29/09/2007, 13:24
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Cita:
Iniciado por Kelpie Ver Mensaje
Imagínate, Kunndry que en este foro se guardaran en una tabla TODOS los mensajes que sí se han leído desde que se creó...

Y sigue imaginado cómo será la tabla dentro unos años...

Bajo el esuqema de "si se modifica se marca como no leído" esta tabla tiene cierto grado de mantenimiento... así que no creo que crezca mucho.... a menos que un salvaje reviva hilos de hace 5 años.....
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #10 (permalink)  
Antiguo 29/09/2007, 16:01
Avatar de periCo[un]Ltd.  
Fecha de Ingreso: agosto-2003
Ubicación: Mexico
Mensajes: 146
Antigüedad: 21 años, 3 meses
Puntos: 0
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

De la base de datos de phpbb:

Código:
 CREATE TABLE phpbb_topics_watch (
  topic_id mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  user_id mediumint(8) NOT NULL DEFAULT '0',
  notify_status tinyint(1) NOT NULL default '0',
  KEY topic_id (topic_id),
  KEY user_id (user_id),
  KEY notify_status (notify_status)
  );
__________________
I miss you, like the desert miss the rain
  #11 (permalink)  
Antiguo 03/10/2007, 08:31
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 18 años
Puntos: 6
Re: ¿Cuál sería la mejor forma de programar los mensajes nuevos de un foro?

Uy! no pinta nada bien! alguien lo podría Bannear?

Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
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:51.