Foros del Web » Programando para Internet » ASP Clásico »

Sistema Changelog

Estas en el tema de Sistema Changelog en el foro de ASP Clásico en Foros del Web. Distribuyo una Web con el mismo formato, es decir, todos mis clientes tienen la misma Web cambiando datos en la BD y hoja de estilo. ...
  #1 (permalink)  
Antiguo 09/08/2013, 03:47
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 5 meses
Puntos: 6
Pregunta Sistema Changelog

Distribuyo una Web con el mismo formato, es decir, todos mis clientes tienen la misma Web cambiando datos en la BD y hoja de estilo.

Quiero crear un sistema para que el cliente al logarse en el gestor de contenido vea las nuevas actualizaciones.

Para ello se conectará a la BD de la Web matriz.

Estas son las tablas de la web matriz que albergarán las actualizaciones:

Tabla Changelog:
* id
- fecha
- título
- texto

Tabla Changelog_suscritos
* id
- Codigo_suscriptor
- email_suscriptor

Tabla Changelog_suscritos_actualizaciones_visitadas
* id
- id_suscriptor
- id_changeLog

En esta última tabla voy guardando las actualizaciones visitadas por cada suscriptor. He preferido hacerlo así y no por fecha, así me aseguro de que los suscriptores vean las actualizaciones y tendrán un mensaje indicando el número nuevo de actualizaciones.

He aquí el problema a la hora de crear el Select para saber cuales son las actualizaciones que no ha visto.

Cuando el usuario se loga en su Gestor de contenido necesito saber cuales son las actualizaciones que no ha visto.

¿alguien me puede ayudar con el Select?
  #2 (permalink)  
Antiguo 09/08/2013, 11:50
 
Fecha de Ingreso: diciembre-2010
Mensajes: 236
Antigüedad: 13 años, 5 meses
Puntos: 6
Respuesta: Sistema Changelog

Creo que ya lo tengo:

tablas:
Código SQL:
Ver original
  1. CREATE TABLE `changelog` (
  2.   `Id` INT(9) NOT NULL AUTO_INCREMENT,
  3.   `Fecha` DATE NOT NULL,
  4.   `Titulo` VARCHAR(150) NOT NULL,
  5.   `Texto` longtext NOT NULL,
  6.   PRIMARY KEY  (`Id`)
  7. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
  8.  
  9. CREATE TABLE `changelog_suscritos` (
  10.   `Id` INT(9) NOT NULL AUTO_INCREMENT,
  11.   `Cod_Suscrito` INT(9) NOT NULL,
  12.   `Nom_Dominio` VARCHAR(50) NOT NULL,
  13.   `Email_Admon` VARCHAR(100) NOT NULL,
  14.   PRIMARY KEY  (`Id`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
  16.  
  17. CREATE TABLE `changelog_vistas` (
  18.   `Id` INT(9) NOT NULL AUTO_INCREMENT,
  19.   `Id_Suscrito` INT(9) NOT NULL,
  20.   `Id_ChangeLog` INT(9) NOT NULL,
  21.   PRIMARY KEY  (`Id`),
  22.   KEY `Id_Suscrito` (`Id_Suscrito`),
  23.   KEY `Id_ChangeLog` (`Id_ChangeLog`)
  24. ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

y con esta consulta sé cuales son las actualizaciones que no han visto:

Código SQL:
Ver original
  1. SELECT ch.* FROM changelog AS ch WHERE ch.id NOT IN (SELECT id_changelog FROM changelog_vistas WHERE id_suscrito=420)

Etiquetas: asp, mysql, select
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 13:18.